Port number

dana·2022년 1월 26일
0

CS

목록 보기
10/11
post-thumbnail

Transport layer

OSI 7계층 중, 데이터를 무슨 프로세스에 전달해야할 지 결정
트랜스포트 계층에서 1024~65535 사이의 포트 번호를 할당함.

port number

프로세스가 사용하고 있는 번호. 송신자가 이미 알고있음.
이 번호를 통해 데이터를 주고 받을 수 있다.

따라서 새로운 애플리케이션을 개발할 때, 반드시 포트 번호를 할당해주어야 함.

범위

포트 번호는 ‘0~65535’(16비트 분) 까지의 숫자로 되어 있으며, 범위에 따라 용도가 정해져 있음

‘0~1023’‘잘 알려진 포트(well-known port)’ 라고 해서 웹 서버나 메일 서버 등과 같이 일반적인 서버 소프트웨어가 클라이언트의 서비스 요청을 대기할 때 사용. 이 번호들은 잘 사용되기 때문에, 사용을 엄격히 제한.

‘1024~49151’‘등록된 포트(registered port)’ 로, 제조업체의 독자적인 서버 소프트웨어가 클라이언트의 서비스 요청을 대기할 때 사용.

‘49152~65535’‘동적 포트(dynamic port)’ 로, 수시로 변경되는 포트를 의미. 서버가 클라이언트를 식별하기 위해 사용. 알아서 할당되며, window에서 netstat 명령어를 통해 현재 사용되고 있는 동적 포트들을 확인 가능. 서버 소켓용 포트로는 사용하지 말기 (에러가 발생할 수 있음)

🙋 다른 프로세스간 PORT번호가 같을 수 있을까? - 'SO_RESUEPORT’ 가능
🙋 같은 프로세스 내에서 여러 포트번호를 사용할 수 있을까? - 하나의 프로그램에서 여러 포트 사용 가능 ( 예시 데이터 베이스)

전송 방식

이 포트번호를 전달하는 프로토콜은 TCPUDP가 있음.
TCP와 UDP의 가장 큰 차이점은 데이터가 잘 도착 했는지 확인할 수 있냐 없냐의 차이

기존 세그먼트에는 보내는 프로세스의 포트 번호와 받은 프로세스의 포트번호가 있는데, TCP에서는 답장을 보내기 위해 두 주소를 모두 가진 채로 전송되지만, UDP의 경우 받는 주소만 가지고 있고 보내는 주소는 가지고 있지 않아 답장이 불가능하다.

profile
PRE-FE에서 PRO-FE로🚀🪐!

0개의 댓글