정보보호론/네트워크 보안

TCP 세그먼트

retro_blue 2020. 9. 13. 20:51
반응형

■ TCP 세그먼트

 - TCP/IP의 트랜스포트 계층에는 연결형 (Connection Oriented) 서비스를 제공하는 TCP 프로토콜과 비연결형(Connectionless) 서비스를 제공하는 UDP 프로토콜이 있다

 - 연결형 서비스인 TCP는 트랜스포트 계층에서 종점 간의 연결 개설, 오류 발생 시 데이터 재전송, 패킷 전달순서 확인, 중복 패킷 제거, 흐름제어, 네트워크 오동작 시 보고 등을 제공하는 서비스이다

 - 비연결형 서비스인 UDP는 위의 연결형 서비스를 제공하지 않고 단순히 패킷을 하나씩 목적지 주소로 전송만 한다. 따라서 UDP를 안정적으로 사용하려면 응용프로그램에서 데이터의 분실, 흐름제어, 오류 등을 처리해야 한다

 

더보기

※ 안정적인 데이터 전달을 필요로 하는 응용프로그램은 대부분 TCP를 사용하고 있고 어떤 응용프로그램은 UDP를 사용해야만 하는 경우도 있는데, 이러한 경우는 다음과 같다

 - 응용프로그램이 UDP만을 사용하도록 작성되어 있는 경우

 - 패킷을 방송(Broadcast) 또는 멀티캐스트 해야 하는 경우

 - TCP 처리 오버헤드 때문에 TCP로 처리할 시간이 없는 경우 (실시간 서비스 등)

 

- TCP에서는 종단 간 연결 설정을 위하여 three-way handshake를 사용한다

 

필드명 길이 (비트) 기능
Source Port 16 송신 측의 응용 프로세스를 구분하는 포트번호
Destination Port 16 수신 측의 응용 프로세스를 구분하는 포트번호
Sequence Number 32 송신된 데이터의 순서 번호 (바이트 단위)
Ack Number 32 수신된 데이터 바이트 수 +1 (아래의 ACK=1일 때 의미가 있음)
Header Length 4 헤더크기 (4바이트 단위)로 보통 5가 된다
Code Bits URG 1 긴급 데이터임의 표시 (이때 Urgent Pointer 값이 유효하다)
ACK 1 Ack용 데이터임을 표시 (이때 Ack Number 값이 유효하다)
PSH (PUSH) 1 데이터는 버퍼링 없이 바로 윗 Layer가 아닌 7Layer의 으용프로그램으로 바로 전달됨. 가능한 빨리 응용프로그램에 버퍼링된 데이터를 즉시 전달할 것
RST 1 연결을 강제 종료할 때 사용한다
SYN 1 세션확립을 위해 연결 요청 시 사용되며, Sequence Number가 초기값임을 알린다
FIN 1 송신 측에서 더 이상 보낼 데이터가 없을 때(종료할 때) 전송된다
Window 16 흐름제어용 윈도우 크기 (바이트 단위)
Checksum 16 TCP PDU 전체와 IP계층의 헤더 중 후반부 12바이트(송ㆍ수신지 IP주소 등)에 대한 오류 검출코드
Urgent Pointer 16 긴급 데이터가 들어 있는 위치를 표시

 

■ 포트번호

 - 포트번호는 응용서비스가 통신하기 위한 '논리적인 접속장소'

 - 컴퓨터는 동시에 하나 이상의 프로그램을 실행하기 때문에 IP주소만으로는 특정 서비스에 접근 할 수 없다

 - 포트는 1에서 65,535까지의 숫자로 표현되며, 각 포트는 특정 서비스에 할당될수 있고 포트를 통해 원하는 서비스에 접근할 수 있다

구분 포트 범위 설명
잘 알려진 포트
(Well known port)
1~1023 - TCP 또는 UDP에서 쓰이는 0번부터 65535번까지의 포트 중에서 IANA(Internet Assigned Number Authority)에 의해 할당된 0번부터 1023번까지의 포트이다
- well known port Nmber, 즉 잘 알려진 포트번호는 우리가 일반적으로 많이 사용하는 서비스의 포트번호들이라고 할 수 있다
- well known port는 0~1023이다. 즉 응용프로그램 개발자가 사용할 수 없는 영역으로 메이저 벤더들이 이미 약속해서 사용하는 것이다
등록된 포트
(Registered port)
1024~49151 - 서버 소켓으로 사용하는 영역
동적 포트
(Private port)
49152~65535 - 매번 접속할 때마다 포트번호가 동적으로 부여된다
- 또한 서버 소켓 포트로 사용할 수 없다

 

★ 잘 알려진 포트 (Well Known Port)

포트번호 서비스 설명
20 FTP - File Transfer Protocol-Datagram
- FTP 연결 시 실제로 데이터로 전송한다
21 FTP - File Transfer Protocol-Control
- FTP 연결 시 인증과 제어를 한다
23 Telnet - 원격지의 컴퓨터를 인터넷을 통해 접속하여 자신의 컴퓨터처럼 사용할 수 있는 원격접속 서비스
25 SMTP - Simple Message Transfer Protocol
- 메일을 보낼 때 사용한다
53 DNS - Domain Name Service
- 네트워크에서 도메인이나 호스트 이름을 숫자로 된 IP주소를 해석해주는 TCP/IP 네트워크 서비스
69 TFTP - Trivial File Transfer Protocol
- FTP와 마찬가지로 파일을 전송하기 위한 프로토콜이지만, FTP보다 더 단순한 방식으로 파일을 전송한다. 따라서 데이터 전송 과정에서 데이터가 손실될 수 있는 등 불안정하다는 단점을 가지고 있다. 하지만 FTP처럼 복잡한 프로토콜을 사용하지 않기 때문에 구현이 간단하다
80 HTTP - Hyper Text Transfer Protocol
- 웹 서비스를 제공한다
110 POP3 - Post Office Protocol
- 메일 서버로 전송된 메일을 읽을 때 사용한다
111 RPC - Sun의 Remote Procedure Call
- 원격에서 서버의 프로세스를 실행할 수 있게 한다
138 NetBIOS - Network Base Input Output Service
- 윈도우에서 파일을 공유할 수 있게 한다
143 IMAP - Internet Message Access Protocol
- POP3와 기본적으로 같으나 메일이 읽힌 후에도 서버에 남는다는 것이 다르다
161 SNMP - Simple Network Management Protocol
- 네트워크 관리와 모니터링을 위해 사용한다

 

■ UDP 헤더 구조

 - UDP(user Datagram Protocol)의 오버헤드는 TCP 보다 작다

 - 송신지 및 목적지의 포트번호(16비트), 데이터그램 길이(16비트), Checksum 그리고 사용자 데이터로 구성된다

 - UDP는 신뢰할 수 있는 종점 간 데이터 송ㆍ수신을 보장하지 않으므로 파일 전송, 메일 서비스 등에는 적합하지 않다

 - 도메인 네임(Domain Name) 서비스나 time 서비스와 같이 한 패킷의 송ㆍ수신으로 어떤 서비스가 이루어지는 경우에 많이 사용된다

 - LAN과 같이 전송 오류가 거의 없고 패킷의 전달 순서가 바뀌지 않는 환경에서는 TCP보다 처리 속도가 빠른 UDP가 유리할 수 있다

반응형

'정보보호론 > 네트워크 보안' 카테고리의 다른 글

IP 패킷, MAC 프레임 구조  (0) 2020.09.13
OSI 7 Layer와 TCP/IP  (0) 2020.09.12
네트워크 개요  (0) 2020.09.12