이번 글에서는 OSI 7 layer의 전송 계층에 대해서 정리한다.
1.Port
- 서버에서 여러가지 서비스(여러가지 기능)들을 구분하기 위한 번호
- 서버 내에서 유일(중복 불가)
- 범위 : 0 ~ 65,535 (65,536개)
- 구분
- Well known port (0~1023) : 잘 알려진 서비스용(프로세스, 프로그램)으로 예약된 주소 (ex. http는 80포트를 쓴다.)
- Resistered port (1024 ~ 49151) : 온라인용으로 개발된 프로그램에서 통신을 위해 할당하는 포트
- Dynamic port (49152 ~ 65535) : 등록하지 않고 임의로 사용할 수 있는 포트
- Client/Server 구조
- Server의 port : 미리 지정된 Port를 사용한다.
- Client의 port : 프로세스가 동작할 때 임의로 port를 지정한다.
예를 들어서,
- <나갈때주소>-<클라이언트 포트 : 누구에게 정보를 돌려줘야 하는지> - <정보>
503-00:55555 - naver:80
503-10:44444 - google
503의 00번이 naver를 찾아갔으니까 다시 돌아올 때 503으로 네이버 페이지를 돌려준다.
503의 10번이 gooble을 찾아갔으니까 다시 돌아올 때 503으로 google 페이지를 돌려준다.
이러한 방법으로 자신이 요청한거를 자신에게 돌아올 수 있도록 한다.
2. TCP (Transmission control protocol)
- 연결 지향형 프로토콜 (Connection-oriented protocol)
- 신뢰성이 있는 프로토콜
- 데이터를 안정적이고 순서대로 전달하도록 보장한다.
- 3 Way handshake 과정으로 통신
A가 먼저 보내고, B도 한번 보낸다. 그리고 통신하자고 완료.

(1) SYN (Synchronize) 요청
(2) SYN-ACK (Synchronize - Ackowledgement)
(3) ACK(Ackowledgement)
-
특징
- 연결 지향성을 가지고 있다. (Connection-oriented)
- 신뢰성을 가지고 있다. (Reliable)
- 순서를 보장한다. (Flow-control)
-
장점
- 높은 신뢰성으로 데이터 손실 없이 정확한 데이터를 전송할 수 있다.
-
단점
- 3 Way handshake 과정이 있기 때문에 속도가 느리다.
- 높은 오버헤드(과부하)가 발생한다. (자원을 많이 쓰는...)
-
용도
- 웹, 파일 전송(FTP), 이메일(SMTP), 원격 접속(Telnet, SSH) 등
-
Header

3. UDP (User Datagram protocol)
- 비 신뢰성 프로토콜 : 보내면 끝이다. (TCP는 문제가 있으면 다시 확인할 수 있다.)
- 비 연결 지향 프로토콜
- 용도
- 실시간 스트리밍, 온라인 게임 (만약에 TV를 보다가 중간에 타닥타닥 끊기면 끊긴다음이 보이는 것, 온라인 게임할 때 캐릭터가 끊긴다.)

4. 디바이스