전송 계층(Transport layer)은 송신자의 프로세스와 수신자의 프로세스를 연결하는 통신 서비스를 제공한다. (프로세스: 메모리에서 동작중인 프로그램)
전송 계층은 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어, 그리고 다중화와 같은 편리한 서비스를 제공한다. 전송 프로토콜 중 가장 잘 알려진 것은 연결 지향 전송 방식을 사용하는 전송 제어 프로토콜(TCP) 이다. 보다 단순한 전송에 사용되는 사용자 데이터그램 프로토콜(UDP) 도 있다.
UDP 프로토콜
안전한 연결을 지향하지 않는 UDP 프로토콜
비연결지향형 프로토콜으로 연결된 상태를 지향하지 않음 -> 연결을 하든 말든 데이터를 냅다 던짐
과정이 간단
TCP 프로토콜
안전한 연결을 지향하는 TCP 프로토콜
연결이 되고 나서 데이터를 보내는 형태이며, 데이터가 잘 갔는지 아닌지에 대한 유무를 판단 후에 다음 데이터를 보낼지에 대한 여부를 판단
잘 갔다면 다음 데이터를 보내고, 제대로 안 갔다면 다시 보냄.
과정이 복잡
0번 ~ 65535번까지 존재.
특정 프로그램이 해당 주소를 사용하게 된다.
특정 프로세스와 특정 프로세스가 통신을 하기 위해 사용한다.
하나의 포트는 하나의 프로세스만 사용 가능하다.
하나의 프로세스가 여러 개의 포트를 사용하는 것은 가능하다.
포트 번호는 일반적으로 정해져있지만 무조건 지켜야하는 것은 아니다.
예를 들어 일반적으로 웹 서비스는 80번 포트를 사용하지만 웹 서비스가 항상 80번 포트를 사용해야만 하는 것은 아니다.
전 세계적으로 유명한 Well-known 포트
HTTP와 HTTPS의 차이는 보안이 붙었냐 아니냐의 차이
네이버를 접속할 때 www.naver.com.:443 이렇게 주소를 치더라도 접속이 되는데, 웹 브라우저가 자동으로 생략해주고 있는 포트번호이기 때문이다.
조금은 유명한 Registered 포트
일반 사용자들이 사용하는 Dynamic 포트
상대방 프로그램과 연결할 때 사용한다. 예를 들어, 브라우저(프로그램)과 다른 서버와 연결이 될 때 해당 포트의 범위 중 아무거나 사용한다.
현재 포트 활성 여부를 나타내는 활성 연결 테이블
윈도우:
netstat -ano
맥:
lsof -PiTCP -sTCP:LISTEN
해당 내용은 [따라學IT] 07. 컴퓨터의 프로그램끼리는 이렇게 데이터를 주고 받는다 - 4계층 이론, [따라學IT] 07. 컴퓨터의 프로그램끼리는 이렇게 데이터를 주고 받는다 - 포트 연결 확인 실습, [따라學IT] 07. 컴퓨터의 프로그램끼리는 이렇게 데이터를 주고 받는다 - 특정 포트 사용 실습의 강의와 개인 공부를 함께 정리 한 내용입니다.