IP 기초이론 (4편)
IP 기초이론 4편에서는 TCP/IP에 대해 자세하게 알아보는 시간 인대요, 먼저 TCP에 대해 먼저 알아보도록 하겠습니다.
◆ TCP/IP_Application Layer (응용계층)
TCP/IP의 응용 프로그램을 소개하겠습니다.
ㅇ HTTP (Hypertext Transfer Protocol) : 웹을 지원하기 위한 프로토콜로 GET, PUT 기능을 포함하고 있고
웹 서버에서 어떠한 Contents를 요청하거나 웹서버로 정보를 보내주는 역할을 합니다.
ㅇ FTP (File Transfer Protocol) : TCP를 사용해서 대량의 파일을 송신하고 수신하는 프로토콜입니다.
ㅇ TFTP (Trivial File Transfer Protocol) : UDP를 사용하는 파일 전송 프로토콜로서 라우터, 스위치 같은
네트워크 장비의 OS 이미지를 Upload, Download 할때 사용됩니다.
ㅇ Telnet : 원격지에 있는 장비에 접속할 수 있는 표준 터미널 에뮬레이션 기능을 제공하고
네트워크 장비에서는 Telnet을 통해 원격지에서 제어 및 설정 변경이 가능합니다.
ㅇ SMTP (Simple Mail Transfer Protocol) : 컴퓨터 네트워크를 통해 전자 메일을 전송하는 프로토콜입니다.
반대로 전자 메일을 수신할때는 POP3 (Post Office Protocol)를 사용합니다.
ㅇ SNMP ( Simple Network Management Protocol) : 네트워크 장비를 모니터링하고 제어하기 위해 사용되는
프로토콜로 장애관리, 장비 설정, 통계, 성능 및 보안 등의 관리 기능을 제공하고,
NMS (Network Management System)에서 많이 사용되고 있습니다.
ㅇ DNS (Domain Name Service) : 도메인 이름을 IP address로 변환해 주는 역할을 합니다.
◆ TCP/IP Protocol Stack
TCP/IP 프로토콜의 전송 계층 기능은 사용자의 데이터를 적절히 분할(Segment)하여 IP에게
전달하고, 수신할 때는 다시 조립함(Reassembly)으로써 효과적인 전송이 이루어지도록 합니다.
전송계층은 TCP와 UDP로 분류 할 수 있고,
TCP와 UDP 프로토콜은 응용 계층과의 통신을 위해 포트의 개념을 사용합니다.
하나의 시스템에서 여러 개의 포트를 사용하여
다양한 응용서비스를 동시에 이용 할 수 있으며 포트는 2byte 크기로 1 ~ 65535 범위의 값을
가집니다.
포트 번호는 IANA (Internet Assigned Number Authority)에 의해 관리되고
RFC 1700에 Well-known Port(1 ~ 1023), Registered Port(1024 ~ 49151), Dynamic Port(49152~65535)가
정의되어 있으며, Client 즉 서비스 요청자 입장에서 볼 때 Well-known Port와 Registered Port는 대부분
Destination Port로 사용되며,
Source Port는 프로그램 실행 시점에 랜덤 포트 번호를 OS로부터 할당받습니다.
※ 참조 사이트 : http://www.iana.ort/assignments/port-numbers
Windows system에는 \WINDOWS\system32\drivers\etc\service 파일에 포트 번호가 정의되어 있습니다.
◆ TCP (Transmission Control Protocol) 특징
상위 Application Layer로부터 받은 정보를 IP 전달되는 과정을 Multiplexing,
반대로 IP로부터 받은 정보를 상위 Layer로 전달되는 과정을 De-Multiplexing이라고 합니다.
ㅇ Connection-Oriented Protocol
. 3-Way Handshake
. Vitual Circuit
. Data 전송 전에 반드시 논리적인 경로가 형성되어야 함
ㅇ신뢰성 있는 전송 : Sequence Number와 Acknowlegement Number 이용
ㅇ 흐름 제어 : Windows Size 이용
ㅇ Packet Recovery : Sequence Number, Acknowlegement Number, Timer 이용
◆ TCP Header
ㅇ Source Port Number : 출발지 Port 번호
ㅇ Destination Port Number : 목적지 Port 번호
ㅇ Sequence Number : 정상적인 데이터 전송을 보장하기 위해 사용하는 필드로 전송되는 세그먼트의 순서 번호
ㅇ Acknowledgement : 상대방이 전송한 Packet을 정상적으로 받았다는 사실은 확인해 주는 Number로써 수신한
마지막 Byte 순서 번호 + 1을 추가해서 보내게 됩니다.
ㅇ Header Length : TCP 헤더의 크기를 나타내는 것으로 32비트(4Byte) 단위를 사용합니다.
ㅇ Reserved : 미래에 사용을 위해서 할당된 필드, 현재는 사용하지 않는 필드로 "0"으로 설정되어 있습니다.
ㅇ TCP Header Flag
. URG : Urgent Pointer가 유효함을 표시
. ACK : Acknowledgment Number가 유효함을 표시
. PSH : 수신자에게 데이터를 응용프로그램에서 전달하도록 지시할 때 사용
. RST : 연결은 Reset 하도록 지시할 때 사용
. SYN : 연결의 시작을 나타내기 위해 사용
. FIN : 연결을 종료하도록 지시
ㅇ Window Size : TCP의 흐름 제어를 위해 사용됩니다. 통신 단말기에서 현재 자신이 수신할 수 있는 Buffer의 양을
상대방에게 알려줍니다. 다시 말하면 상대편 장비에게 얼마만큼의 데이터를 보내도 되는지를
알려주는 필드입니다.
ㅇ TCP Checksum : TCP Header와 Data 필드에 대해 계산된 체크섬으로 에러 여부를 체크합니다.
ㅇ Urgent Pointer : URG Flag가 ON 되어 있을 경우에만 유효하다.
즉, 모든 Data 전송 중 긴급한 내용을 전달할 경우 해당 Data 위치를 지정한다고 보면 됩니다.
ㅇ Option : 현재 정의되어 있는 옵션으로 최대 TCP 세그먼트 사이즈가 있습니다.
ㅇ 데이터(Data) : 상위 Layer로부터 내려온 데이터
◆ TCP Three-Way Handshaking
TCP/IP 프로토콜의 전송 계층 기능은 사용자의 전 송게층으로 내려온 데이터를
TCP는 가상 회선(Virtual Circuit)을 설정하여 데이터를 전송하고, 전송이 완료된 후에는
회선을 해지하는 절차를 이용합니다.
가상회선 설정 시 통신을 하고자 하는 상대방의 회선 설정이 가능한지 확인하는 절차를
3-way Handshake라고 하고,
syn - syn + ack - ack의 3단계 과정을 거칩니다.
Host A에서 B로 임으로 설정한 SYN(순서 번호 100으로 가정)을 보내고,
B에서 A로 ACK(100을 받았고, 다음 100+1을 기대)을 보냅니다.
또한 B에서 A로 SYN(순서번호 300으로 가정)을 보내고,
A에서 B로 ACK(300은 받았고, 300+1을 기대)를 보내게 됩니다.
순서 번호(Sequence number)는 보안을 위해 0부터 시작하지 않고 임의의 번호부터 시작됩니다.
◆ UDP 특징
ㅇ UDP : User Datagram Protocol
ㅇ Connectionless Protocol - Data 전송을 위하여 사전에 필요한 Process가 없음
ㅇ Best-Effort Delivery : 신뢰성을 보장 못함
ㅇ UDP는 Connectionless(비연결성) 서비스로 전달의 보장이 안 되는 Unreliable(비신뢰성) 프로토콜이지만,
애플리케이션 프로토콜에 오버헤드가 적고 간단하게 구현되는 전송 서비스를 제공합니다.
ㅇ UDP는 일반적으로 브로트 캐스트, 멀티캐스트를 집중적으로 이용하는 애플리케이션 또는 질의에 빠른
응답을 요구하는 애플리케이션에 사용됩니다.
ㅇ UDP의 전송 단위를 Datagram이라 하고, 데이터 크기가 간단하여 전송 단위(Datagram) 별로 전송한다는 의미가
되겠습니다.
◆ TCP와 UDP 비교
TCP와 UDP는 가장 근본적으로 Connection-Oriented와 Connectionless 프로토콜로 구분이 됩니다.
TCP는 두 사용자 시스템 간의 통신에서 에러제어, 흐름제어, 데이터 순서 보장, 데이터 손실 및 중복해결을 수행하지만
UDP는 두 사용자 시스템간의 통신에서 단순한 전송을 수행할 뿐 데이터 순서도 보장하지 못하며
데이터 손실 및 중복을 해결하지 못하게 됩니다.
UDP의 경우, 오늘날 Network Infrastructure가 발전하면서 등장한 새로운 Service인 VoIP와 Video Streaming Service
에 적합하다고 볼 수 있습니다.
지금까지 TCP에 대해 알아보았고, 다음시간에는 IP에 대해 알아보도록 하겠습니다.
'네트워크 이야기' 카테고리의 다른 글
IP 기초이론 (6편) (0) | 2019.08.08 |
---|---|
IP 기초이론 (5편) (0) | 2019.08.08 |
IP 기초이론 (3편) (0) | 2019.08.07 |
IP 기초이론 (2편) (0) | 2019.08.06 |
IP 기초이론 (1편) (0) | 2019.08.05 |
댓글