대표적인 프로토콜로 TCP와 UDP
understnad principles behind transport layer services:
multiplexing, demultiplexing
한 link의 대역폭에 여러 user의 대역폭을 실어 보내는 것
data link(2)계층이 해주는 일은 한 hop 이동하기
= support one hop delivery
network(3)계층이 해주는 가장 중요한 일은 routing
= support host to host connection
transport(4)계층이 해주는 일은 process(socket) 찾기
즉, application(5)계층에서 실행 중인 여러 process 중 dest process를 찾는 것
= support process to process connection
IP address 하나에서 실행 중인 여러 process들이 물린 port를 찾는 것이 mux
reliable data transfer
flow control
congestion control
learn about Internet transport layer protocols:
provide logical communication between app processes running on different hosts
transport protocols run in end systems (전부 TCP 얘기)
send side: breaks app messages into segments, passes to network layer
receive side: reassembles segments into messages, passes to app layer
L5 application 에서 내려온 message 크기가 네트워크와 연결된 링크의 transmission rate R 보다 큰 경우, 쪼개져서 전송되어야 하는데 그러한 작업을 하는 계층이 L4의 TCP와 L3의 IP 프로토콜이다.
이러한 쪼개짐은 호스트에서 일어날 수도 있고 중간 라우터에서도 (IPv4 라우터인 경우에만) 일어날 수 있다.
호스트: transport 계층이 TCP를 사용한다면 TCP가/ UDP를 사용한다면 IP 계층에서 이 메시지를 R 크기에 맞게 break down한다.
(IPv4) 라우터: outgoing link의 R 값이 incoming link의 R 값보다 작은 경우 IP 계층에서 하나의 패킷을 다시 여러 개의 패킷을 쪼개서 전송한다.
⇒ TCP Segmentation과 IP fragmentation 두 가지. 쪼개는 이유는 나가는 link의 capacity가 한계가 있기 때문에
network layer: end(host) to end routing using IP address
transport layer: process to process connection using port #
client, server와 상관없이 sender는 mux, receiver는 demux
→ 하나의 IP address에 서로 다른 port number을 이용해 보낼 수 있기 때문에 mux (헤더-각각의 포트번호를 보유-를 붙인다)
TCP와 UDP 모두 헤더를 사용해 mux/demux. but 다른 헤더 필드가 다름
UDP는 TCP에 비해 기능이 많지 않아 헤더가 짧음
host receives IP datagrams
each datagram has src IP address, dest IP address (내 주소)
→ in layer3 header
each datagram carries one transport-layer segment
each segment has source, destination port number
UDP에서는 여러 프로세스가 하나의 소켓과 통신하므로, 소켓에 나(sender)의 IP address와 나의 port number를 소켓에 알려줘야함
TCP에서는 connection setup 시 end to end 사이에 dedicated 된 소켓을 사용하기 때문에 내 소켓에 receiver socket 정보도 담음. 반대도 마찬가지
(61) T/F로 표시하시오.
(a) Akamai는 컨텐츠와 네트워크 인프라를 모두 가지고 있는 content provider이다.
⇒ F. Akamai는 네트워크 인프라를 제공하는 content distribution network이다.
(b) OTT 사업자가 enter deep을 사용하여 콘텐츠 서버를 분산한 경우 bring home을 사용한 경우보다 content 관리가 더 수월하다.
⇒ F. 반대의 설명. enter deep을 사용하면 사용자의 ISP 내에 콘텐츠 서버를 두어 throughput을 증가시킬 수 있지만 content 관리가 어렵고, bring home을 사용할 경우 content 관리가 쉬우나 enter deep보다 throughput이 좋지 않다.
(c) UDP 소켓이 상위계층 어플리케이션 프로토콜에게 메시지를 전달할 때 마다 해당 메시지를 전송한 프로세스의 IP 주소와 포트번호를 항상 전달하는 이유는 UDP는 하나의 소켓으로 여러 프로세스와 통신하고 있으며, 어떤 프로세스와 통신하는지 정보를 UDP가 관리하고 있지 않기 때문이다.
⇒ T.
(d) TCP 서버는 자신과 통신하는 여러 클라이언트들과 하나의 소켓으로 메시지를 주고받는다.
⇒ F. UDP 서버에 대한 설명. 항상 클라이언트의 요청을 기다리고 있는 door socket으로 요청이 들어오면, 해당 클라이언트와의 dedicated 된 socket을 생성하고, 연결을 맺는다. 즉, 하나의 클라이언트와 하나의 소켓으로 메시지를 주고 받는다.
(e) TCP 서버는 자신과 통신하는 각 클라이언트들과 연결된 소켓(socket)에 해당 클라이언트 호스트의 IP 주소와 포트번호를 기록하고 있다.
⇒ T.
(f) TCP 서버와 통신하는 어떤 클라이언트가 TCP 연결을 close 하면 해당 서버는 그 클라이언트와 통신하기 위해 사용한 socket과 더불어 welcome socket도 close 한다.
⇒ F. welcome socket은 다른 client의 요청을 listen 하도록 항상 open을 유지한다.
(g) application 계층에서 생성된 message 크기가 전송될 링크의 transmission rate인 R 값보다 클 경우 메시지는 더 작은 크기의 패킷으로 쪼개지게 된다. 이 쪼개지는 작업은 transport 계층에서 수행될 수도 있고, network 계층에서 수행될 수도 있다.
⇒ T. transport 계층에서 수행되는 작업은 tcp segmentation, network 계층에서 수행되는 작업은 IP Fragmentation이다.
(62) OTT 사업자가 자신의 서버를 하나로 구축해서 한 장소에 두었을 때, 즉 mega-server로 구축할 때 발생할 수 있는 상황 4가지를 설명하시오. (슬라이드 80참조)
⇒
(63) Transport layer의 가장 기본 기능(duty)은 무엇인지 구체적으로 설명하시오.
⇒ 각 end host의 Application layer에서 실행되고 있는 process들 간의 연결을 맺어준다. 즉, process to process의 logical connection을 지원하는데, 각 process의 포트번호 값을 가진 TCP segment의 헤더를 통해 destination host에서 source host의 application process에 해당하는 process의 socket을 찾고 dedicated connection을 맺어준다.
(64) 호스트 A와 호스트 B가 통신하고 있고, 이때 중간에 세개의 라우터 R1, R2, ,R3를 거쳐간다고 가정한다. (즉, A – R1 – R2 – R3 – B 로 연결되어 있고, A와 B외에 다른 호스트는 연결 되어있지 않음) 이때 호스트 B의 transport 계층에서 아래 network 계층으로부터 받은 PDU를 열었을 때 보이는 해더는 A, R1, R2, R3 중 누가 작성한 것인가?
⇒ A의 transport 계층에서 작성된 헤더이다. 라우터는 transport 계층을 갖고 있지 않다.