가자미의 개발이야기

[네트워크] 수송 계층 본문

Computer Science/네트워크

[네트워크] 수송 계층

가자미 2021. 4. 3. 14:52

a. 수송 계층 ex. TCI, UDP

일반적으로 교환 노드에는 존재하지 않음.(방화벽 같은 예외가 있다.)

엔드 시스템에만 존재

 

보낼 때 조각으로 나눠서 각 조각마다 헤더를 붙여서 보낸다.

받을 때는 순서대로 받지는 않는다. 받는 쪽이 수송 계층을 통해 순서를 파악한다.

 

b. 수송 계층 vs 네트워크 계층

네트워크 계층 : 어떤 경로로 메시지를 전달할 것인가

수송 계층 : 도착한 메시지를 어떤 프로세스로 처리할 것인가.

(프로세스들은 포트번호로 구분한다.)

 

c. 인터넷 수송 계층 프로토콜

순서대로 전달, 높은 신뢰성(오류 제어)(TCP)

-순서 없이 오거나, 잘못된 메시지가 오거나(비트오류),

-아예 도중에 메시지가 잃어버리거나, 같은 메시지를 여러번 받거나...

=>TCP는 이를 해결할 능력이 있음.

 

순서 없이 전달, 낮은 신뢰성(UDP)

 

두 기능 모두 속도나 딜레이를 보장하지 못한다.

 

d. 멀티플렉싱/디멀티플렉싱

프로세스가 소켓을 통해 요청을 전달하는데,

요청들을 하나로 적절한 헤드로 담아 전달한다. 이를 멀티플렉싱이라 한다.

이렇게 전달된 헤더를 해석하여 적절한 행동을 하는 것을 디멀티플렉싱이라 한다.

 

디멀티플렉싱은 목적지 수송지 포트 넘버를 통해 어떤 프로세스에 전달해야할지를 파악한다.

UDP의 경우(disconnection demux) : 목적지의 포트넘버를 파악해서 포트와 연결된 소켓으로 UDP세그먼트를 전달

TCP의 경우(connection-oriented demux) : 소스 ip, 소스 포트넘버, 목적지 ip, 목적지 포트넘버가 모두 일치해야 전달

e. UDP

중간 손실이나 순서가 달라져도 특별한 액션을 취하지 않는다.

connectionless의 특징.

받는 쪽의 프로세스가 작동 중인지 확인하지 않음(no handshaking)(연결설정을 위한 초기지연이 없다)

UDP 세그먼트들은 각자 독립적으로 다뤄진다.(세그먼트들이 같이 온 세그먼트인지 관심x)

ex. DNS, SNMP

비트 손상에 민감하지 않지만 딜레이에 민감한 어플리케이션에 자주 활용(비디오, 오디오 스트림)

신뢰성 향상을 위해서는 어플리케이션 계층에서 해결해야 한다.

헤더가 단순한 구조. 사이즈가 작고 구현이 쉬움

 

f. UDP 헤더

32비트 2개이므로 8바이트.

length는 헤더를 포함한 UDP 세그먼트의 바이트 길이.

checksum는 오류 발생을 확인

 

sender는 자기가 보낸 메시지를 특정 알고리즘의 결과값과 같이 보내고,

receiver는 자기가 받은 메시지를 특정 알고리즘에 넣은 결과값과 같이 온 결과값을 비교하여 오류를 검증

1의 보수 연산을 통해 메세지의 합과 알고리즘 결과값의 합이 0이 되는 결과값을 반환.

1,2,3,-6 => 0,3,3,-6으로 오는 경우 오류가 발생했지만 checksum으로는 못잡아낼 수 있다.

wraparound 유심히 볼것

'Computer Science > 네트워크' 카테고리의 다른 글

[네트워크] TCP(헤더와 타이머)  (0) 2021.04.16
[네트워크] RDT(신뢰성있는 데이터 전송)  (0) 2021.04.06
[네트워크] CDN  (0) 2021.03.26
[네트워크] P2P  (0) 2021.03.26
[네트워크] DNS  (0) 2021.03.25