포트번호(Port number)
데이터를 주는/받을 프로세스에게 할당 되는 식별자. 프로세스를 구분하기 위한 식별자라고 생각하면 될 것 같다.
포트번호는 16bit로 이루어져있다. 총 216 이므로 총 65536개의 포트번호가 존재할 수 있다.
0 ~ 1023번을 Well Known Port(IANA에서 할당한 TCP, UDP 포트) 라고한다. 유명한 서버, 특정 서버들이다.
1024 ~ 49151번을 Registered Port(기관이나 사업자들을 위해 IANA에서 관리하는 포트) 라고 한다.
49152 ~ 65535번을 Dynamic Port(일반 사용자들이 자유롭게 사용할 수 있는 포트)라고 한다.
TCP와 UDP의 포트번호는 별개다. TCP 포트넘버 80과 UDP 포트넘버 80은 다르다.

전체적인 틀에서 보면 데이터가 목적지로 이동할 때, IP 주소를 이용해 목적지까지 도착한 후 IP 헤더에 있는 프로토콜 정보를 이용해 UDP/TCP를 파악한다. 그 후 헤더에 있는 포트넘버를 이용해 프로세스까지 도착한다.
UDP(User Datagram Protocol)
UDP는 TCP에 비해 상당히 간단한 프로토콜로 데이터를 비신뢰적으로 전송한다. 통신과정에서 데이터가 누락되는 경우가 있을 수 있다. 서버에서 데이터를 보낼 때 연결이 되어있는지 확인하지 않는다(TCP는 핸드셰이크를 함)


- 패킷 길이 : 헤더 길이와 데이터 길이의 합계
- 체크섬 : 데이터가 훼손되었는지 확인하기 위한 정보
TCP(Transmission Control Protocol)
UDP와는 다르게 신뢰적인 통신을 한다. 꼼꼼하고 안전한 통신을 지향하는 녀석이라고 생각하면 된다. ( 핸드셰이크, 혼잡제어, 흐름제어 등 )

- 일련번호 : 송신한 바이트 수 . 보낸 데이터 세그먼트의 순서가 몇 번째 데이터인지
- 확인 응답 번호 : 수신한 바이트 수
- 데이터 옵셋 : TCP 헤더의 길이. 데이터의 시작번호. 1~10, 11~20 의 경우 1, 11이 세그먼트의 offset
- 예약 : 차후 사용을 위해 예약된 6bits 필드.
- 컨트롤 비트 : 현재의 통신 상태를 표현해주는 역할.
- CWR: 통신 경로가 혼잡해서 전송량을 줄여줄 것을 알려줌
- EBE: 통신 경로가 혼잡해서 수신할 수 없을 수도 있다는 것을 알려줌
- URG: 긴급 포인터에서 지정한 데이터를 즉시 처리해야 한다는 것을 알려줌
- ACK: 이전 동작을 확인했다는 것을 알려줌. 확인 응답 번호와 조합해서 사용됨
- PSH: 수신 데이터를 즉시 애플리케이션 계층에 전달해야 한다는 것을 알려줌
- RST: 이상 상황이 발생하여 접속이 강제 중단되었다는 것을 알려줌
- SYN: 접속을 시작할 때 ON으로 설정함.
- FIN: 데이터 송신이 완료되어 통신을 종료하고 싶다는 것을 알려줌.
- 윈도우 사이즈 : 한 번에 수신할 수 있는 데이터 크기
- 체크섬 : 데이터가 훼손되었는지 확인하기 위한 정보
- 긴급 포인터 : 위급한 일이 있을 때 알려줌
'Network' 카테고리의 다른 글
| HTTP Error (0) | 2023.11.13 |
|---|
댓글