728x90

Port란?

- 네트워크와 통신하는 프로세스가 사용하는 호스트 내에서의 논리 주소

- 포트 범위: 0 ~ 65535

 

 Well-known Port (0 ~ 1023)  잘 알려진 포트로 주요 프로토콜이 사용하는 포트 범위
 Registered Port (1024 ~ 49151)  애플리케이션이 사용하는 포트 범위(ex. DBMS 등)
 Dynamic Port (49152 ~ 65525)  운영체제가 클라이언트에게 할당하는 포트 범위

 

TCP란?

- Transmission Control Protocol

- 신뢰성 있는 전송 프로토콜로 네트워크로 데이터를 전달하기 전 연결을 수립함

- 연결 지향형(Connection Oriented) 프로토콜

- 흐름 제어(Flow Control), 혼잡 제어(Congestion Control) 등의 기능을 제공함

 

3-way Handshake : TCP 연결 수립

 

 

4-way Handshake : TCP 연결 종료

 

 

 

TCP Header

 

 Source Port  - 출발지 포트 번호
 - 필드 길이: 16bit
 Destination Port  - 목적지 포트 번호
 - 필드 길이: 16bit
 Sequence Number  - TCP 세션을 동기화 하기 위한 순서 번호
 - 필드 길이: 32bit
 Acknowledgement Number  - 요청을 잘 받았다는 것을 나타내는 확인 번호
 - 필드 길이: 32bit
 Offset  - TCP 헤더의 길이
 - 필드 길이: 4bit
 Reserved  - 예약된 필드(사용되지 않음)
 - 필드 길이: 4bit
 TCP Control Flags  URG  긴급 데이터의 유무를 나타내는 플래그
 ACK  요청에 대한 응답 여부를 나타내는 플래그
 PSH  전송할 데이터가 있는 경우 사용하는 플래그
 RST  TCP 연결을 강제로 초기화할 때 사용하는 플래그
 SYN  TCP 연결을 수립할 때 동기화하기 위해 사용하는 플래그
 FIN  TCP 연결을 정상 종료하고자 할 때 사용하는 플래그
 Window  - 수신 버퍼의 크기를 나타내는 필드
 - 필드 길이: 16bit
 Checksum  - TCP Header + Data에 대한 오류 검증을 위한 필드
 - 필드 길이: 16bit
 Urgent Pointer  - Urgent Flag가 SET 되었을 때 긴급 데이터의 마지막 위치를 가리키는 필드
 - 필드 길이: 16bit
 Options  - TCP에서 추가적으로 정의할 필드가 있는 경우
 - 가변 길이
 Padding  - Options 부분이 4Bytes로 끊어지지 않는 경우 나머지 부분을 채움
 - 가변 길이

 

UDP란?

- User Datagram Protocol

- 전송 프로토콜 중 하나로 비 신뢰적, 비 연결지향적 프로토콜

- TCP에 비해 가벼운 프로토콜로 빠른 데이터 전송을 요구할 때 사용하는 전송 프로토콜

 

 

UDP Header

 

 

 Source Port  - 출발지 포트 번호
 - 필드 길이: 16bit
 Destination Port  - 목적지 포트 번호
 - 필드 길이: 16bit
 Length  - UDP 패킷의 길이(UDP Header + UDP Data)
 - 필드 길이: 16bit
 Checksum  - UDP 헤더와 데이터의 오류를 검증하기 위한 필드
 - 필드 길이: 16bit

 

728x90

+ Recent posts