os/Linux

포트(ports)

C/H 2006. 9. 22. 13:53

포트(ports)


포트는 클라이언트/서버 시스템(Client-Server System)의 중요한 개념 중 하나입니다. 비유하자면, IP 주소는 빌딩의 우편 번호이고 포트는 그 빌딩 내의 특정 사무실 호수라고 생각하면 됩니다. IP 주소가 인터넷 상의 특정 '컴퓨터'의 주소를 가리킨다면 포트는 그 컴퓨터 내에 존재하는 여러 프로세스(process)로 연결되는 통로를 지칭합니다. 보통의 웹서버의 경우 대부분 포트 80을 통해 웹서버에 접속한 클라이언트와 서버가 서로 대화를 나눕니다. IP 주소를 이용해서 서버 컴퓨터를 찾은 다음 포트 넘버를 이용해서 'http 프로세스'를 찾는 것입니다. 만약, 그 서버에 텔넷(telnet) 접속을 한다면 IP 주소는 동일하되 다른 포트 넘버를 사용합니다. IP 주소가 빌딩의 주소라면 포트 번호는 특정 사무실이 몇 호인지를 가리킵니다.


포트 번호는 IP 주소와는 상관이 없습니다. TCP와 상관 있습니다. TCP에 의해서 만들어진 데이타그램은 IP 주소가 적힌 편지봉투에 담아서 그 IP 주소에 맞는 빌딩(=특정 컴퓨터)을 찾아갑니다. 빌딩에 도착한 편지는 IP 주소 봉투를 벗겨낸 뒤, 내용물(TCP의 packet) 내에 들어있는 포트 넘버에 맞게 특정 사무실로 배달이 됩니다.[1]


한번 더 정리해 봅시다. TCP는 전달하려는 각 데이타 패킷에 TCP 헤더(Header)를 붙여서 포장합니다.(encapsulation) 그 포장지에 붙어 있는 TCP 헤더에는 나중에 순서를 파악할 때 사용되는 데이타그램 고유의 번호와 그 데이타가 어느 포트에서 출발해서 어느 포트로 들어갈 것인지에 관한 정보, 그리고 전송 도중 에러가 생겼는지를 체크하는 첵섬(checksum) 정보 등이 담겨 있습니다.[2] IP 프로토콜은 이 TCP 패킷의 헤더에 주소 정보를 덧붙입니다. 그 데이타 패킷이 어느 IP 주소(컴퓨터)에서 출발해서 어느 IP 주소로 간다는 정보를 덧붙입니다.


데이타 패킷이 TCP/IP 프로토콜을 통해 어떤 노드에서 다른 노드로 전송되는 경우, 편지 봉투의 예처럼 네트웍 상의 해당 주소(IP 주소)로 찾아가서, TCP 헤더에 있는 포트 정보에 따라 그 컴퓨터의 특정 프로세스로 전송됩니다. 전송 과정 중에는 에러가 있었는지 없었는지를 첵섬(checksum)을 통해 점검합니다.



[1] Matthias Kalle Dalheimer, Terry Dawson, Lar Kaufman, Matt Welsh. TCP/IP and PPP. Running Linux, O'Reilly & Associates, 1999. p.518.

[2] Peter Wainwright. Packets and encapsulation. Professional Apache, Wrox, 1999. p.12.
반응형

'os > Linux' 카테고리의 다른 글

ncftp 사용  (0) 2007.03.17
안녕 AnNyung 1.2 R3 Linux Server  (0) 2006.11.02
개인 PC에서 Network 점검  (0) 2006.09.22
타임서버로부터 로컬서버의 시간설정  (0) 2006.09.22
Linux Mounting  (0) 2006.09.22