[네트워크] 3.1 Transport Layer

PADO·2020년 11월 12일
0

컴퓨터 네트워크

목록 보기
12/27
post-thumbnail
post-custom-banner

Chapter 3: Transport Layer

대표적인 프로토콜로 TCP와 UDP

goals:

  • 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:

    • UDP: connectionless transport
    • TCP: connection-oriented reliable transport
    • TCP congestion control

Transport services and 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 계층에서 하나의 패킷을 다시 여러 개의 패킷을 쪼개서 전송한다.

스크린샷 2020-11-12 오전 9 41 34

⇒ TCP Segmentation과 IP fragmentation 두 가지. 쪼개는 이유는 나가는 link의 capacity가 한계가 있기 때문에

Transport vs. network layer

network layer: end(host) to end routing using IP address

transport layer: process to process connection using port #

Internet transport-layer protocols

  • service not available:
    • delay guarantees
    • bandwidth guarantees

Multiplexing/demultiplexing

client, server와 상관없이 sender는 mux, receiver는 demux

  • p1 p2가 하나의 IP address에서 Internet으로 나간다.

→ 하나의 IP address에 서로 다른 port number을 이용해 보낼 수 있기 때문에 mux (헤더-각각의 포트번호를 보유-를 붙인다)

  • transport 계층에서 받은 메시지를 바탕으로 어떤 process와 통신해야 할지 결정 → demux (헤더를 떼어서 읽고 dest를 찾아준다)

How demultiplexing works

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 connection process

UDP에서는 여러 프로세스가 하나의 소켓과 통신하므로, 소켓에 나(sender)의 IP address와 나의 port number를 소켓에 알려줘야함

스크린샷 2020-11-12 오전 9 42 25

TCP connection process

TCP에서는 connection setup 시 end to end 사이에 dedicated 된 소켓을 사용하기 때문에 내 소켓에 receiver socket 정보도 담음. 반대도 마찬가지

스크린샷 2020-11-12 오전 9 42 39

Quiz

(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참조)

  • single point of failure : 유일한 서버에 장애가 발생하면, 서비스를 유지할 수 없다.
  • point of network congestion : 서버가 유일하다면 traffic이 방대해 network congestion이 발생할 수 있다.
  • long path to distant clients : 물리적으로 먼 거리에 있는 클라이언트에게 응답이 지연된다.
  • multiple copies of video sent over outgoing link : 중복된 data를 계속 응답할 수 있다. (?)

(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 계층을 갖고 있지 않다.

post-custom-banner

0개의 댓글