1. 전송 계층 서비스
1) 전송 계층 서비스
전송 계층에서는 어플리케이션 프로세스간 Logical communication을 제공한다.
네트워크 계층애서 host to host 전송을 제공하고,
다음으로 전송 계층에서 목적지로 온 메세지를 목적지 프로세스로 전달하는 역할을 한다.
추가적으로, 네트워크 계층 서비스를 보완, 강화하는 역할을 한다.
2) 인터넷 전송 계층 프로토콜
UDP는 네트워크 계층에서 host 간 전송에 추가적인 기능 없이 프로세스로 전달 역할.
TCP는 혼잡 제어, 흐름 제어, 연결 설정로 안정적이고, 순차적인 전달을 해준다.
-> 둘다 지연, 대역폭 보장하지 못한다.
2. 다중화 Multiplexing 와 역다중화 Demultiplexing
1) 다중화와 역다중화
전송측 전송 계층에서 다중화
여러 소켓의 데이터를 처리하고 전송 헤더를 추가한다.(나중에 역다중화에 사용됨)
수신측 전송 계층에서 역다중화
수신측 전송 계층에서는 여러 프로세스들로부터 메세지를 받는데 이 메세지들을 역다중화 해야한다. 헤더 정보를 사용하여 수신된 세그먼트
를 전달하여 소켓을 일치시킨다.
2) 역다중화
(1) 역다중화 동작 방법
전송 계층에서 생성한 데이터 유닛의 이름을 segment라고한다.
segment는 header와 payload로 구성된다.
header에는 역다중화를 위해 source 포트와, dest 포트가 들어간다. (IP는 네트워크 계층에서 붙인다.)
(2) 비연결형 역다중화
소켓을 생성하면 host-local 포트가 할당된다. (클라이언트 소켓은 운영체제가 할당하므로 프로그래머는 알지 못함)
데이타그램 생성 시 UDP소켓에 목적지 IP와 포트를 명시한다.
host가 UDP 세그먼틀르 받으면, 세그먼트한테서 목적지 포트를 확인해서 해당 포트에 해당하는 소켓으로 세그먼트를 전달한다.
여러 source IP로부터 온 동일한 포트 번호를 가진 IP 데이터그램은 목적지에서 같은 소켓으로 연결된다.
(3) 연결-지향 역다중화
TCP소켓은 source IP, source 포트, Dest IP, Dest 포트 이 4가지 튜플로 정의된다.
수신자는 세그먼트를 적적한 소켓에 연결하기위해 4가지 값 모두를 사용한다.
source 마다 소켓을 만들면, 해당 소켓을 통해 데이터를 주고받을 프로세스를 fork 한다(자식 프로세스를 만들어 자식 프로세스는 해당 통신만 담당한다.)
프로세스가 많아지만 관리 overhead가 커지므로, threaded 프로세스를 이용해 동일 어플리케이션의 다른 소켓을 통해 데이터를 주고받는다.
어떤 소켓으로 보낼지 정하기위해,
비연결형에서 서버는 소켓을 하나만 열어두므로, 어떤 프로세스의 소켓인지만 구분하면 된다.(dest IP, port)
연결 지향에서는 클라이언트 프로세스별 소켓을 열어두므로 source IP, 포트와 dest IP, 포트가 필요하다.
'CS > 네트워크' 카테고리의 다른 글
[네트워크] 전송 계층 - 신뢰성 있는 데이터 전송의 5 원리 (0) | 2025.01.12 |
---|---|
[네트워크] 전송 계층 - UDP (0) | 2025.01.12 |
[네트워크] 응용 계층 Application Layer : TCP와 UDP 소켓 프로그래밍 (0) | 2024.12.11 |
[네트워크] 응용 계층 Application Layer : P2P (0) | 2024.12.11 |
[네트워크] 응용 계층 Application Layer : DNS (0) | 2024.12.11 |