본문 바로가기
Network

Port number / TCP / UDP

by shur_ 2022. 10. 22.

포트번호(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은 다르다.

 

 

Well Known Port

 

전체적인 틀에서 보면 데이터가 목적지로 이동할 때, IP 주소를 이용해 목적지까지 도착한 후 IP 헤더에 있는 프로토콜 정보를 이용해 UDP/TCP를 파악한다. 그 후 헤더에 있는 포트넘버를 이용해 프로세스까지 도착한다.

 


UDP(User Datagram Protocol)

 

UDP는 TCP에 비해 상당히 간단한 프로토콜로 데이터를 비신뢰적으로 전송한다. 통신과정에서 데이터가 누락되는 경우가 있을 수 있다. 서버에서 데이터를 보낼 때 연결이 되어있는지 확인하지 않는다(TCP는 핸드셰이크를 함)

 

UDP

 

UDP 헤더

- 패킷 길이 : 헤더 길이와 데이터 길이의 합계

- 체크섬 : 데이터가 훼손되었는지 확인하기 위한 정보

 


TCP(Transmission Control Protocol)

 

UDP와는 다르게 신뢰적인 통신을 한다. 꼼꼼하고 안전한 통신을 지향하는 녀석이라고 생각하면 된다. ( 핸드셰이크, 혼잡제어, 흐름제어 등 )

 

TCP 헤더

 

- 일련번호 : 송신한 바이트 수 . 보낸 데이터 세그먼트의 순서가 몇 번째 데이터인지

- 확인 응답 번호 : 수신한 바이트 수

- 데이터 옵셋 : 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

댓글