Layer 4: Transport Layer PDF
Document Details

Uploaded by haneuldarmaji
Kyungseop Shin
Tags
Summary
This document provides lecture notes on Layer 4: Transport Layer in computer networks. Key topics covered include User Datagram Protocol (UDP), Transmission Control Protocol (TCP), Dynamic Host Configuration Protocol (DHCP), Network Address Translation (NAT), and Firewalls.
Full Transcript
Computer Networks └ Transport Layer Layer 4 : Transport Layer Kyungseop Shin Lecture Outline ▪ Layer 4 Transport Protocol에 대해 이해 ▪ User Datagram Protocol(UDP) ▪ Transmission Control Protocol (TCP) ▪ IP datagram 전달에 대한 다양한 제...
Computer Networks └ Transport Layer Layer 4 : Transport Layer Kyungseop Shin Lecture Outline ▪ Layer 4 Transport Protocol에 대해 이해 ▪ User Datagram Protocol(UDP) ▪ Transmission Control Protocol (TCP) ▪ IP datagram 전달에 대한 다양한 제어 프로토콜에 대해 이해 ▪ Dynamic Host Configuration Protocol (DHCP) ▪ Network Address Translation (NAT) ▪ Firewall Layer 4 Overview ▪ End-to-end data 전송을 위한 logical communication 역할 ▪ Connection-oriented vs. connectionless ▪ IP 및 Port 번호로 식별 L4 23 80 L4 5001 12651 Layer 4 Overview ▪ 빗대어 표현하면, Layer 4는 Bill과 Ann이다! Bill Transport layer Host network layer Ann Transport Layer 종류 ▪ Application에 따라 다음 두 프로토콜 중 한가지를 사용 ▪ User Datagram Protocol (UDP) : unreliable, connectionless service, transparent ▪ Transmission Control Protocol (TCP) : reliable, connection-oriented service, congestion control ▪ 두가지 모두 IP 상위 계층 위치에서 end-to-end로 segment를 전달하는 역할을 가짐 ▪ Best-effort and unreliable delivery service (IP) 상에서 ▪ Application process에게 적절하게 packet 전달 (Socket to socket) Transport-Layer Multiplexing ▪ 한 host 내 다양한 process로부터의 data 전달 역할 ▪ Multiplexing : 여러 socket을 통해서 SDU를 받아 전송 ▪ Demultiplexing : 수신된 PDU를 적절한 socket으로 전달 ▪ Socket : Application - transport layer 간 SAP ▪ Transport layer에서는 Port 번호로 식별 Host Host Process Process Process Process Socket Socket Socket Socket Transport Layer Transport Layer Port Port Port Port Port number ▪ Transport-layer에서의 식별자 역할 ▪ socket에 대한 식별 ▪ 보통 source/destination 별로 port번호 존재 ▪ Well-known port number User Datagram Protocol (UDP) ▪ 간단한 multiplexing/demultiplexing 기능의 프로토콜 ▪ Port 번호와 checksum만 header로 붙음 ▪ Application 계층에서 flow control 등 기타 기능을 구현 ▪ Segment 전송 방식도 심플함 ▪ 연결 과정 없이 바로 전송 가능 User Datagram Protocol (UDP) ▪ UDP socket의 생성 ▪ Application process에서 socket 생성 즉시 transport layer에서 port 번호가 부여됨 ▪ UDP segment 송수신 ▪ Two tuple : destination IP & port number ▪ 상대방 host의 port가 열려있으면 항상 전송 가능 ▪ IP, port 번호를 지정해서 보내면 바로 전달이 됨 User Datagram Protocol (UDP) ▪ UDP의 장점 ▪ application-level에서의 data 전송 제어가 손쉬움 ▪ Connection establishment 과정이 불필요함 ▪ Connection state에 대한 관리 및 관련 동작 제한이 없음 ▪ Packet header overhead가 적음 Transmission Control Protocol (TCP) ▪ Connection-oriented : connection establishment 과정 존재 ▪ connection이 존재해야 segment 전달이 가능 ▪ Four tuple : source IP/port number, destination IP/port number ▪ source에 대한 정보까지 대조하여 socket에 mapping 서로 다른 UDP 5001 TCP socket 5001 12000 12000 7001 7001 동일한 socket Transmission Control Protocol (TCP) ▪ 예시 Transmission Control Protocol (TCP) ▪ Connection establishment : process간 three way handshake를 통해 수행 ▪ 특정 port로 connection establishment 메시지를 수신하고 나서 socket과 port번호가 연동됨 ▪ Point-to-point : single sender/receiver 간 연결됨 ▪ Client process에서 initiation을 함 ▪ Server process에서는 IP address/port에 대해 연결 승인 ▪ 목적 : 상대방의 존재 알림, optional parameter 결정, transport entity resource 할당 Transmission Control Protocol (TCP) ▪ Segment format ▪ Sequence no. : Byte 시작점 ▪ ACK no. : 다음번 수신을 해야 할 Byte offset ▪ Receive window: 한번에 최대로 보낼수 있는 byte수 Transmission Control Protocol (TCP) ▪ Retransmission과 함께 flow control 수행 Congestion Control ▪ UDP와 다르게 TCP는 congestion control을 수행 ▪ Network의 혼잡을 방지하기 위해 자체적으로 flow control 수행 ▪ 일시적 delay가 커질 수 있으나 network 전체 관점에서 이득 ▪ Window management : 일반적으로 window가 크면 congestion을 유발할 가능성이 크므로 아래와 같은 규칙하에 관리 ▪ slow start ▪ dynamic window sizing Congestion Control ▪ Slot start & Dynamic window sizing 예시 ▪ 정상적으로 전송-feedback으로 주고받는 상황에서 서서히 window 크기를 확장 ▪ congestion 상황에서 임의로 window size를 줄임 Dynamic Host Configuration Protocol (DHCP) ▪ 서비스 시나리오 ▪ 특정 host가 새로 등장 ▪ DHCP server로 IP 주소 요청 ▪ IP 주소를 할당하는 response msg 수신 Dynamic Host Configuration Protocol (DHCP) ▪ 4 step scenario ▪ DHCP server discovery : DHCP server 를 찾는 메시지 (UDP port 67) ▪ IP : 255.255.255.255 (broadcasting) ▪ DHCP server offer : server가 자신의 존 재를 알림 (broadcasting) ▪ DHCP request ▪ DHCP ACK Network Address Translation (NAT) ▪ IPv4를 오늘날까지 생존하게 한 알고리즘 ▪ 절대적으로 수가 부족한 IP address를 국지적으로 사용할 수 있게 해줌 192.168.0.x ▪ Small office, home office subnet에 적합 ▪ 비슷한 개념을 확장하여 LTE에서도 활용중 NAT 192.168.0.x NAT 192.168.0.x NAT Network Address Translation (NAT) ▪ Small Office Home Office (SOHO) ▪ 초기에는 ISP로부터 일정 IP 대역을 할당 받음 ▪ 이 subnet이 점점 커지면서 IP 대역을 더 많이 요구하게 되면 연속된 IP를 못받을 수 있음 ▪ Network Address Translation ▪ 하나의 IP로 할당 받아 내부의 subnet의 여러 host들에게 공통으로 서비스를 하는 방식 ▪ 내부적으로 IP를 따로 주면서 외부로 나갈 때 할당된 하나의 IP를 사용 Network Address Translation (NAT) ▪ Out-going IP + port 번호와 내부 IP/port로 mapping ▪ NAT translation table을 통해 outer->internal routing을 수행 ▪ 초기 Outgoing packet에 대해 translation table 항목을 생성하고 port번호 부여 Network Address Translation (NAT) ▪ NAT의 역할 ▪ 외부 IP 하나를 통해 여러 host들이 손쉽게 networking할 수 있음 ▪ 부족한 IP address 수에 대한 강력한 보완책이 됨 ▪ Internal network내 host를 감추는 역할 ▪ 외부에서는 어떤 host든 single IP로 밖에 보이지 않음 ▪ 한계점 ▪ In-going packet으로 연결이 시작되는 서비스가 불가능 ???? Port 5001 NAT Universal Plug and Play (UPnP) ▪ P2P file-sharing 혹은 VoIP와 같이 외부에서 접속이 필요한 서비스를 NAT 환경에서 지원하기 위한 프로토콜 ▪ Host가 주변 NAT와 사전 configuration 진행 ▪ Private IP/port와 public IP/port를 미리 지정 ▪ Outside node에서 해당 IP/port로 internal host에 접속 가능 Request port 30000 Port 30000 NAT Network Address Translation (NAT)의 Issue ▪ Port 번호의 용도가 잘못됨 ▪ host를 지칭하는 것이 아닌, service를 지칭해야 함 ▪ Layered architecture concept에 어긋남 ▪ IP header에 대한 관리는 L3에서만 해야 함 ▪ IP header에 대한 생성/조작은 End-to-end 단계에서만 다루어져야함 ▪ IPv4의 다음 기술인 IPv6이 널리 퍼지는 것을 제대로 막음 ▪ Networking 기술이 다음 세대로 가지 못하고 있음 Firewall ▪ internal network와 internet의 경계를 짓는 존재 ▪ Allowing some packets to pass and blocking others ▪ Internal network - internet 간 대문(gateway) 역할 ▪ Network security 측면에서의 주요 역할 ▪ Network 관리자가 외부 접속에 대한 관리를 가능하게 해줌 Firewall ▪ Three goals ▪ 모든 양방향의 traffic이 firewall을 통해서 지나가도록 함 ▪ 외부 internet과 관리 대상인 내부 망의 boundary 역할 ▪ Local security policy에 의해 규정된 허용 트래픽만 통과시킴 ▪ 유입/유출되는 traffic에 대해 관리자가 지정한 정책에 따라 흐름을 제어 ▪ Firewall 자신은 보안에 매우 강해야 함 ▪ firewall이 공격당하기 쉬우면 차라리 없는 게 더 좋음 Categories of Firewalls : Traditional Packet Filters ▪ Traditional packet filters ▪ Administrator-specific rule에 따라 gateway router에서 packet의 통과를 허용하거나 drop을 수행 Categories of Firewalls : Traditional Packet Filters ▪ 보안적인 측면과 더불어 Internal network의 용도 및 관리자의 의도에 맞게 적절히 filter를 수동으로 설정 ▪ IP와 port 번호를 조합해서 규칙 생성 가능 Categories of Firewalls : Traditional Packet Filters ▪ 실제 firewall rule은 access control list를 설정해서 구현 HTTP DNS Categories of Firewalls : Stateful Packet Filter ▪ Stateful packet filter ▪ connection 별로 filtering 규칙 적용 ▪ 각 packet에 대해 별도로 filtering 규칙을 적용하는 Traditional packet filter와는 다름 ▪ connection의 handshake 절차 등을 추적하면서 filtering을 할 수 있음 Categories of Firewalls : Application Gateway ▪ Filtering이 packet 기반(IP, port number 등)이 아닌 application 수준의 상황에 따라 이루어져야 할 때가 있음 ▪ e.g.) 특정 internal user에게만 telnet service 허용 ▪ Application gateway ▪ Firewall과 협업해서 Packet filter를 함 ▪ IP/TCP/UDP 보다 윗계층에서 application data를 확인