JongTachi의 개발 블로그

3. 네트워크의 공통 언어 TCP/IP (네트워크의 공동 규칙).Chapter_3 본문

Network

3. 네트워크의 공통 언어 TCP/IP (네트워크의 공동 규칙).Chapter_3

JongTachi 2022. 11. 14. 23:38
728x90
반응형

3-17 포트 번호로 애플리케이션에 할당한다. 

1) 포트 번호의 역할

호스트에서 동작하는 애플리케이션에서 데이터를 배분하기 위해서는 각각의 애플리케이션을 식별할 수 있어야 한다. 포트번호란 TCP/IP의 애플리케이션을 식별하는 식별 번호로, 이 뒤에 설명할 TCP 또는 UDP 헤더에 지정한다. 포트 번호는 16비트 수치이고 지정 범위는 0~65535이다.

명칭 포트 번호 범위 의미
웰노운 포트 0~1023 서버 애플리케이션용으로 예약된
포트번호
등록된 포트 1024 ~ 49151 자주 이용되는 애플리케이션의 서버 쪽 포트번호
동적/사설 포트 49152 ~ 65535 클라이언트 애플리케이션용 포트번호

2) 웰노운 포트 번호로 웹브라우저의 요청을 기다린다.

여기서 중요한 것은 웰노운 포트 번호이다. 웰노운 포트 번호는 미리 정해져있다. 서버 애플리케이션을 실행하면, 웰노운 포트 번호로 클라이언트 애플리케이션의 요청을 기다린다.주요 웰노운 포트 번호는 우리가 자주 보는 포트 번호이므로 밑에 표를 참고하길 바란다.

프로토콜 TCP UDP
HTTP 80(월드 와이드 웹 HTTP) -
HTTPS 443(TLS/SSL 방식의 HTTP) -
SMTP 25 -
POP3 110 -
IMAP4 143 -
FTP 20/21 -
DHCP - 67/68

3) 등록된 포트로 식별한다.

등록된 포트는 웰노운 포트 이외에 자주 이용되는 포트로만 알고있으면 된다.

4) 동적/사설 포트로 식별한다.

동적/사설 포트는 애플리케이션을 식별하기 위한 포트 번호이다. 다른 포트들과 달리 미리 정해져 있지 않고 클라이언트 애플리케이션이 통신할 때 동적으로 할당된다. 

 

3-18 확실하게 애플리케이션의 데이터를 전송한다.

1) TCP란? 

TCP란 신뢰성 있는 애플리케이션 간의 데이터 전송을 하기 위한 프로토콜이다. 

TCP를 이용하면, 애플리케이션 프로토콜에는 신뢰성을 확보하기 위한 구조를 넣어 둘 필요가 없다. 즉 알아서 구축 되어있다는 의미.

 

2)  TCP에 의한 데이터 전송 절차

TCP에 의한 애플리케이션 간 데이터 전송은 다음과 같이 이루어진다. 

  • TCP  커넥션 맺기
  • 애플리케이션 간 데이터 송수신
  • TCP 커넥션 끊기

커넥션 맺기

우선 먼저 확인해야 할 것은 데이터를 송수신 하는 애플리케이션 간의 통신이 정상적으로 이루어질 수 있는지 확인해야 한다. 이 확인 프로세스는 3웨이 핸드 쉐이크(커넥션 맺기)라고 한다.

 

애플리케이션 간 데이터 송수신

애플리케이션이 다루는 데이터를 TCP로 송신하기 위해서는, 애플리케이션의 데이터에 애플리케이션 프로토콜 헤더와 TCP 헤더를 추가할 필요가 있다. 이를 TCP 세그먼트라고 표현한다. 이때 애플리케이션의 데이터 크기가 크면 분할하여 복수의 TCP 세그먼트로서 전송한다. 어떻게 분발했는지는 TCP 헤더에 기술되고, 목적지에서 차례대로 원본 데이터로 조립한다. 또한, 데이터가 도착하면 받았다고 확인해준다. 데이터 수신 확인을 ACK라고 부른다. 만약 일부 데이터가 제대로 도착하지 않았다면 데이터를 재전송한다. 또한 네트워크가 혼잡하면 데이터 전송 속도를 제한한다. 이런 데이터 전송 구조를 플로우 제어라고 한다.

 

TCP 커넥션 끊기

마지막으로 애플리케이션의 데이터 전송이 모두 끝나면 알아서 TCP 커넥션을 끊는다. 

 

 

728x90
반응형