Network/컴퓨터 네트워크

[6] CH3 Transport 계층

Return 2021. 11. 1. 00:02

Transport 계층 서비스 개요 

 

  Transport 서비스 & protocol 

- 서로 다른 host에 동작하는 애플리케이션  프로세스 간의 논리적 통신을 제공 

- Transport protocol은 종단 시스템에서만 동작 

   -송신측 : message를 쪼개어 segment들로 만들어 network 계층에 넘겨줌 

   -수신측 : segment들을 재결합하여 message로 만들어 application계층에 넘겨줌 

- Transport protocol의 종류 : internet TCP & UDP

 

  Transport vs Network 계층 

- Network layer : host들간의 논리적 통신 

- Transport layer : process들간의 논리적 통신 

 

  Internet Transport 계층 protocol

- 순서대로 전달하는 신뢰적인 전달 : TCP (혼잡제어 , 흐름제어 , 연결 설정)

- 순서가 보장되지 않는 비신뢰적인 전달 : UDP 최신형 서비스인 IP의 확장형 

 

 

다중화 & 역 다중화 

 

송신호스트에서의 다중화 : 여러개의 소켓들로부터 데이터를 모으고, 헤더(추후 역 다중화에서 사용)를 붙여 포장 

수신호스트에서의 역 다중화 : 수신된 segment들로 올바른 소켓들로 배분 

 

 

  역다중화의 동작 

- Host IP datagram들을 수신한다. 

    - 각 datagram은 출발지 IP주소와 목적지 IP주소를 가진다. 

    - 각 datagram은 한개의 transport 계층 segment를 운반 

    - 각 segment는 출발지 port번호와 목적지 port번호를 가정 

- Host는 IP주소와 port번호를 기반으로 segment를 적절한 소켓에 전달 

 

  비연결형 역다중화 

- UDP socket은 다음의 쌍으로 구분됨 (목적지IP주소,목적지port번호)

- Host가 UDP segment를 수신하면 segment안의 목적지 port번호를 점검하고 UDP segment를 목적지 port번호에 해당되는 socket에 전달한다. 

- 서로 다른 출발지 IP주소와 출발지 port번호를 가지는 IP datagram들이 같은 socket에 전달 가능하다. 

 

  연결형 역 다중화 

- TCP socket은 출발지 IP주소, 출발지 port번호 , 목적지 IP주소 , 목적지 port번호로 구성된다.

- 수신 host는 위 4개의 값을 모두 사용하여 segment를 적절한  socket에 전달한다. 

- server host는 동시에 여러개의 TCP socket들을 생성한다.  ( 각 socket은 앞의 4개 값으로 구분 )

- web server는 서로 다른 client와의 연결의 위해 서로다른 socket를 가진다. ( 비지속 HTTP는 각 request마다 다른 socket을 생성한다. )

 

 

비연결형 Transport UDP

 

  UDP : User Datagram Protocol

-최소 기능만으로 구성됨 

- 최선형 서비스 : 즉, UDP segment는 손실되거나 , 순서가 바뀌어 애플리케이션에 전달될 수 있다. 

- 비연결형 : segment 전송 이전에 송신측과 수신측 사이에 handshaking 하지 않는다. , 각 segment는 다른 segment와 별개로 독립적으로 취급된다. 

 

  UDP를 사용하는 이유 ? 

- 연결 설정(지연을 유발할 수 있는 요인)이 필요 없음 

- 간단 : 송신 측과 수신측에서 연결 상에 관리가 필요 없다. 

- segment header가 작다 

- 혼잡제어 사용되지 않는다. 따라서 UDP는 신속하게 전달될 수 있다. 

 

  UDP 추가적 특징 및 형식 

- Streaming multimedia 애플리케이션에 흔히 사용됨 (약간의 손실 허용)

- 다른 UDP 사용 예 (DNS , SNMP)

- UDP위에서 신뢰적 전송 : application계층에서 신뢰성 추가 

 

  UDP Checksum

목적 : 전송된 segment내의 오류(뒤바뀐 bit값) 검출 

 

송신측 

- segment 내용을 16bit 정수의 수열로 취급 

- checksum : segment내용들을 더함 

- 송신측은 checksum 결과값을 UDP checksum field에 입력 

 

수신측 

- 수신된 segment의 checksum을 계산 

- 계산된 checksum이 checksum field값과 같은지 점검 ( NO : 오류 검출 , YES : 오류 검출 되지 않았으나 아직 모름 )