포트 번호는 컴퓨터 내에서 동작하고 있는 어플리케이션을 식별하기 위해 사용하는 숫자이다.
구체적으로 어떻게 사용하며, WEB 클라이언트가 웹 서버에 액세스 하는 경우를 예로 살펴보자.
# 클라이언트가 서버에 접속 (REQUEST)
① 웹 클라이언트는 웹 브라우저가 만든 REQUEST 데이터를 수신하면, 송신원 포트 번호에 다이나믹 포트에서 무작위로 선택한 숫자를 수신처 포트번호에 웹 서비스를 의미하는 80을 넣어 세그먼트로 만든다.
② 웹 클라이언트는 IP와 이더넷의 캡슐화를 실행하고, 웹 서버에 전송한다.
③ 웹 서버는 이더넷과 IP의 비캡슐화를 통해 수신처 포트 번호를 체크한다. (정상적이라면 80이 들어있을 것이다.)
80번은 웹 서비스를 의미하는 Well-known 포트 번호이므로, 웹 서비스를 제공하는 서버 소프트웨어에 REQUEST 데이터를 전달한다.
서버 소프트웨어는 클라이언트의 REQUEST 대한 처리를 진행해, RESPONSE 데이터를 작성한다.
# 서버가 클라이언트에 접속 (RESPONSE)
① 웹 서버는 서버 소프트웨어로부터 RESPONSE 데이터를 받으면, 송신원 포트에 웹서비스를 의미하는 80을, 수신처 포트 번호에 이전에 수신했던 세그먼트의 송신원 포트 번호를 넣어 세그먼트로 만든다.
② 웹 서버는 IP와 이더넷의 캡슐화를 실행하고, 웹 클라이언트에 전송한다.
③ 웹 클라이언트는 이더넷과 IP의 비캡슐화를 통해 수신처 포트를 체크한다.
수신처 포트 번호는 자신이 배당했던 포트 번호에 연결되어 있는 어플리케이션, 즉 웹 브라우저에 데이터를 전송한다.
'개발서 > 서버의 기본' 카테고리의 다른 글
3-01 어떤 서버를 이용할까 (0) | 2020.07.07 |
---|---|
2-12 NAT와 NAPT (0) | 2020.07.04 |
2-10 TCP와 UDP (0) | 2020.07.02 |
2-09 ARP (0) | 2020.07.01 |
2-08 라우팅 (0) | 2020.06.30 |