본문 바로가기
Quality control (Univ. Study)/Computer Network

Transport-layer services

by 생각하는 이상훈 2023. 10. 5.
728x90

Transport services and protocols

대부분의 Application layer는 reliable한 연결을 요구하지만 network, data link, physical layer는 unreliable한 network service를 제공한다. 따라서 필요에 따라 Transport layer에서 unreliable한 데이터를 reliable하도록 관리를 해주는 역할을 해야한다.

Internet Transport layer protocol로는 크게 reliable한 in-order delivery를 해주는 TCP와 unreliable하고 unordered delivery를 하는 UDP가 있다.


Multiplexing/Demultiplexing

Sender에서 여러 개의 입력 신호 또는 데이터 스트림을 하나의 채널을 통해 전송하기 위해 하나의 신호로 결합하는 과정이 multiplexing이고 receiver가 다중화된 신호를 원래의 개별 신호나 데이터 스트림으로 분리하는 과정이 demultiplexing이다.

Demultiplexing은 위와 같이 데이터의 header 부분에 함께 담겨오는 destination port number를 토대로 진행된다. P2P network의 경우에는 주어진 source port number를 토대로 response가 가기도 한다.


Connectionless demux

Connectionless demultiplexing은 UDP통신에서 사용한는 demultiplexing이다.

UDP통신에서 생성된 socket은 host-local port number를 갖고 있다. 그후에 들어오는 통신들에 대해서 같은 destination을 갖고 있는 데이터들을 한번에 처리할 수 있다.


Connection-oriented demux

Connection-oriented demultiplexing은 TCP의 demultiplexing 방식이다. 이때 TCP의 socket은 4가지 조건이 맞아야 재활용할 수 있다. 만약 하나라도 다르다면 new socket을 만들어야한다. 해당 4가지 조건은 아래와 같다.

=> source IP address

=> source port number

=> destination IP address

=> destination port number

다시 말해서 하나의 host에서 동시에 TCP socket은 여러개를 support할 수 있어야한다.


UDP

UDP는 User Datagram Protocol의 줄임말로 데이터를 전송하기 전에 연결을 설정할 필요가 없으며, 전송된 데이터가 제대로 도착했는지 확인하지 않는다.

UDP의 특징은 다음과 같다.

비연결 지향: 연결을 설정할 필요가 없기 때문에 전송 속도가 빠르다.

비신뢰성: 데이터가 제대로 도착했는지 확인하지 않기 때문에 손실이나 순서가 뒤바뀌는 등의 문제가 발생할 수 있다.

적은 헤더: TCP에 비해 헤더가 작기 때문에 전송 효율이 높다.

UDP는 다음과 같은 경우에 사용된다.

실시간 스트리밍: 비디오, 게임과 같은 실시간 스트리밍은 데이터의 손실이나 순서가 뒤바뀌는 것을 허용할 수 있다.

데이터 전송: 데이터의 신뢰성이 중요하지 않은 경우 UDP를 사용하여 빠르게 데이터를 전송할 수 있다.

DNS: DNS는 도메인 이름을 IP 주소로 변환하는 프로토콜입니다. UDP를 사용하여 빠르게 DNS 요청을 전송할 수 있다. 강의노트의 내용 강의노트는 UDP의 특징과 사용 용도를 요약하고 있습니다.

UDP checksum은 데이터의 일부를 계산하여 생성한 값으로, 데이터가 손상되었는지 여부를 확인하는데 사용된다.

UDP 체크섬은 다음과 같은 단계로 작동한다.

1. 송신자는 데이터를 전송하기 전에 체크섬을 생성한다.

2. 송신자는 체크섬을 UDP 헤더의 체크섬 필드에 저장한다.

3. 수신자는 데이터를 받은 후 체크섬을 계산한다.

4. 수신자는 송신자가 생성한 체크섬과 계산한 체크섬을 비교한다.


 

728x90

'Quality control (Univ. Study) > Computer Network' 카테고리의 다른 글

Pipelined protocols  (1) 2023.10.10
Reliable data transfer design  (0) 2023.10.06
컴퓨터 네트워크 문제(2)  (0) 2023.10.01
P2P(2)  (0) 2023.09.27
P2P(1)  (0) 2023.09.22