layer4 transport

박진은·2022년 5월 16일
0

컴퓨터 네트워크

목록 보기
10/12

layer4 transport layer

layer 4 over view

  • Connection oriendted(TCP) vs. Connectionless(UDP0
  • IP 및 PORT 번호로 식별
  • 우편 전달할때 건물까지는 IP 사람한테는 transport layer이다

IP 계층에 대한 다양한 제어

  • 동적 IP 주소 관리
  • IP 변환(NAT)
  • IP packet 흐름제어

Transport layer종류

applicaton에 따라 두가지 프로토콜 중 한가지를 사용한다.

  • user datagram protocol(UDP) : unreliable, connectionless service, transparent
  • Transmission control protocol(TCP): reliable, connectioin- oriented service, congestion control
  • 두가지 모두 IP상위 계층 위치에서 end to ent 로 segment를 전달하는 역할을 가진다
    • best effort and unreliable delivery service상에서
    • application process에게 적절하게 packet 전달(Socket to socket)

Transport - layer multiplexing

스크린샷 2022-05-15 오후 1.19.20.png

  • 한 host 내 다양한 process로부터의data 전달 역할
    • multiplexing: 여러 socket을 통해서 SDU를 받아 전송 - 여러 process의 정보를 한번에 처리
    • Demultiplexing: 수신된 PDU를 적절한 socket으로 전달
  • Socket: process - transport layer 간 SAP
    • TRANSPORT LAYER 에서느 port번호로 식별

      port number

  • Transport layer 에서의 식별자 역할
    • socket에 대한 식별

    • 보통 source/ destination별로 port 번호 존재

      • port nomber 로 현재 진행되고 있는 process를 전달한다.
    • well-known port number

      UDP

  • 간단한 multiplexing /demultiplexing 기능의 프로토콜
    • port 번호와 checkSum만 header로 붙음
    • 사실상 IP의 기능만 하며, application계층에서 flow control등 기타 기능을 구현
  • Segment 전송 방식도 심플함
    • 연결과정없이 바로 전송 가능
    • 스크린샷 2022-05-15 오후 1.30.27.png
  • UDP socket 의 생성
    • application process에서 socket 생성 즉시 transpork layer 에서 port 번호가 부여됨
  • UDP segment 송수신
    • two tuple: destination IP & port number
    • 상대방 host 의 port 가 열려있으면 항상 전송 가능
      • IP, port 번호를 지정해서 보내면 바러 전달이 됨
    • Source port?
      • return address 개념 - 데이터를 보내는 송신측의 source port 그리고 dest post가 다시 서버측에서는 송신측에서의 sourceport 가 dest post 가 되고 수신측에서는 dest post가 source port가 된다.
  • UDP의 장점
    • application-level 에서의 data 전송 제어가 손쉬움
    • connection establichment 과정이 불필요함
    • connection state에 대한 관리 및 관련 동작 제한이 없음
    • packet header overhead가 적다.
    • 보통 실시간 스트리밍 같은 동시 동작 데이터 전송이 아니면 의미가 없어지는 서비스에 사용된다.

Transmission control protocol

  • connection oriented: connection establisihment 과정 존재
    • connection 이 존재해야 segment 전달이 가능하다
  • Four tuple: souce IP / port number , destinationIP/ port number
  • source에 대한 정보까지 대조하여 socket에 mapping
    • 이 때문에 UDP는 동일한 socket으로 들어오면 무조건 동일한 포트로 나가는데
    • TCP의 경우에는 port number도 포함되어있어서 같은 socket으로 들오더라고 다른 port로 빠지는 것이 가능하다. 스크린샷 2022-05-15 오후 1.46.07.png 위 그림에서 같은 sourceport number를 가진 두 깩체가 있어도 sourceIP가지 고려해서 routing이 진행된다. 스크린샷 2022-05-15 오후 1.51.11.png
  • TCP는 reliable data transfer를 지원한다
    • 즉, 재전송 및 ARQ 기능을 포함한다.
    • 좌측 - reliable transfer를 원하면 TCP로 PDU를 전달한다
      • transport layer 에서 알아서 처리 후 receiver에 전달한다.
    • 우측 - TCP 내부 구현모습
      • transport layer 에서 pdu data를 받아서 djEjgks 데이터를 보냈는지 header를 붙여서 network layer로 보낸다
      • 수신측에서 받은 데이터를 재조합해서 제대로 왔는지 확인후 올려준다.

TCP connectino Establishment

process 간 3- way hand shake를 통해 수행된다

  • 연결이 완료되어야 socket과 연결이 됨
  • 특정 port로 connection eestablishment 메세지를 수신하고 나서 socket과 port 번호가 연동된다
  • point to point: sigle sender/ receiver가 연결된다.

client process(보내는 쪽에서 intiation을 한다

secver process에서는 IP address/port 에 대한 연결승임

목적

  • 상대방의 존재알림, optional parameter결정, transport entity resource 할당
  • Segment format
    • sequence no : Byte 시작점
    • ACK no. : 다음번 수신을 해야할 Byte offset 스크린샷 2022-05-15 오후 2.04.18.png
  • Retransmission과 함께 flow control수행
  • 우의 그림설면
  1. 1401 바이트 까지 전송함(200단위)
  2. 1601바이트 가지 잘받았고 1000바이트 정도 여유 있다고 ack전송
  3. 아크 받기전에 1801까지 전송했음 근데 ack에서 1000바이트 정도 여유 있다니까 다시 2401까지 전부 전소함
  4. 인제 윈도우만큰 모두 전송했기 때문에 더이상 전송하지 않고 아크를 기다린다.

congestion control

  • UDP와 다르게 TCP는 congestion control을 수행한다.
    • Network의 혼잡을 방지하기 위해 자체적으로 flow control수행
      • 일시적 delay가 커질 수 있으나 network 전체 관점에서 이득
  • window management : 일반적으로 window가 크면 congestion을 유발할 가능성이 크모로 아래와 같은 큐칙하에 관리한다
    • slow start & Dynamic window sizing
      • 정상적으로 전송- feedback으로 주고 받는 상황에서 서서히window크기를 확장함

      • congestion 상황에서 임의로 window size를 줄임

        스크린샷 2022-05-15 오후 2.29.35.png

DHCP(dynamin host configuration protocol)

  • 특정 host에 대해 IP를 동적으로 할당하기 위한 프로토콜
    • 가능한 IP address pool 내에서 선택해서 요청 host 에게 할당
      • 사용되지 않는 IP는 자동으로 회수
    • 원래는 IP address 수가 부족한 상황을 보완하기 위한 목적으로 만들어짐
    • 최근에는 wifi 나 subnet내 불특정 다수의 host에 대한 IP address를 편리하게 부여하기 위한 용도로 사용됨
  • 서비스 시나리오
    • 특정 host가 새로 등장
    • DHCP SERVER로 ip 주소 요청
    • IP 주소를 할당하는 responce msg 보냄

스크린샷 2022-05-15 오후 2.31.16.png

DHCP server discovery

  • DHCP 서버를 찾는 메세지
  • IP 255.255.255.255(broadcasting)
  • 해당 Ip 로 보내면 브로드케스팅하겠다느 것이고, 그러면 모든 네트워크로 뿌리게 되어 모든 서버는 요청을 확인하게 된다

DHCP sever offer

  • sercer 가 자신의 존재를 알려준다
  • ip주소에 대해 제안함
  • 이때도 boradcasting

DHCP request

  • IP 주소 달라고 함
  • 제안을 보고 요청사항을 보낸다

DHCP ACK

  • 확인했다고 보낸다

NAT - net work address translation

ipv4를 오늘날까지 생존하게 한 중요한 프로토콜

-절대적으로 수가 부족한 ip address를 국지적으로 사용할 수 있게 해줬다

small office, home office subnet에 적합하다

미리주어진 ip address와 port 를 기반으로 해서 실제 내부 IP와 연동을 해주는 프로토콜

SOHO small office home office

  • 초기에는 isp로부터 일정 ip 대역을 할당 받았다
  • 이 subnet 이 점점 커지면서 더 많이 요구하게 되면서 연속된 ip를 못받을 수 있게됨

network address translation

하나의 ip를 할당받아 내부의 subnet 의 여러 host들에게 공통의 서비스를 하는 방식

내부적으로 ip를 따로 주면서 외부로 나갈 때 할당된 하나의 ip를 사용

  • out going Ip + prot 번호와 내부IP port 로 mapping한다
    • nat translation table 을 통해 outer → internal routing 을 수행
    • 초기 outgoing packet에 대해 translation table 항목을 생성하고 port 번호 부여한다
    1. subnet 의 한 host 가 destination IP/PORT로 요청 subnet 의 gateway에 전달된다

      • getway는 NAT translation table을 이용해서 LAN의 IP/Port 주소를 가지고 WAN 의 IP/ Port주소로 변환한다
    2. gateway가 수정한 source IP/PORT 요청이 destination IP/Port로 간다

    3. destination 에서 gateway가 설정한 source로 response 보낸다

      그 SourceIP/ PORT는 gateway자체이고, 그걸 다시 내부 ip/ port로 변환해준다

    4. subnet의 해당 host에게 응답이 전달된다.

      NAT의 역할

      외부 IP하나를 통해 여러 host들이 손쉽게 networking 할 수 있다.

      -부족한 IP address수에 대한 강력한 보안책이다

      internal network내 host르 감추는 역할을 한다

      -외부에서 어떤 host든 sigle IP로 밖에 보이지 않으므로 보안성을 높여준다

      한계점

      in going packet으로 연결이 시작되는 서비스가 불가능하다

      그냥 port 5001로 요청하면 nat는 tabe에 없는 정보이므로 처리할 수 없다

      NAT Issue

    • port 번호의 용도가 잘못됐다

    • host를 지칭하는 것이 아는 service를 지칭해야한다

    • 하나의 host내에서 여러 프로그램들의 요청을 구분하기 위한 port번호인데 요청 host를 구별하는 용도로 사용한다

    • layered architecture concept에 어긋난다

      • ip header에 대한 관리는 L3에서만 해야하는데, L4에서 조작하고 있다
    • IP header 에 대한 생성 조작은 End to End 단계에서만 다뤄져야한다(Gate way 에서 가로채서 조작하므로)유배

    • ipv4의 다음

      universal plug and play

  • P2P file sharing 혹은 VolP와 같이 외부에서 접속이 필요한 서비스를 NAT환경에서 지원하기 위한 프로토콜이다.
  • host가 주변 Nat과 사전 configuraion을 진행
    • private IP/ port와 public IP/port를 미리지정
    • outside node에서 대당 IP/port로 internal host에 접속가능

fire wall

  • internal network 와 internet의 경계를 짓는 존재
    • allowing sonme packets to pass and blocking orhers
    • internal network - internet 간 대문 (gate way)역할
  • Network security측면에서의 주요 역할
    • network 관리자가 외부 접속에 대한 관리를 가능하게 해줌
  • three goals
  • 모든 양방향의 traffic이 fire wall을 통해서 지나가도록함
    • 외부 internet과 솬리 대상이 내부망의 boundary 역할
  • Local security policy에 의해 규정된 혀용 트래픽만 통과시킨다
    • 유입 유츌되는 tracffic에 대해 관리자가 지정한 정책에 따라 흐름을 제어
  • Fire wall 자신은 보안에 매우 강해야함
    • fire wall이 공격당하기 위우면 차라리 없는게 더 좋음

traditional packet Filters

  • 보안적인 측면과 더울어 internal network의 용도 및 관리자의 의도에 맞게 적절히 filter를 수동으로 설정할 수 있다
  • IP와 port번호를 조합해서 규칙 생성이 가능하다
  • 리눅스에서 방화벽 규칙을 설정할 수있다.
  • 실제 firewall은 Aeccess Control List를 설정해서 구현한다.

Stateful packet filter

  • connection 별도로 각각 filtering 규칙 적용
  • 각 packet에 대해 별도로 filtering 규칙을 정하는 traditional packet filter와는 다르다
  • connection의 handshake절차 등을 처적하면서 filtering을 할 수 있다
  • 명시적으로 연결을 막는다

Application gateway

  • filtering 이 packet 기반이 아닌 applicationo수주의 상황에따라 아뤄져야 할 때가 있다
  • 특정internal user에게만 telnet service허용
  • firewall 과 잘협업해서 packet FILTER를한다
  • ip / tcp/udp보다 윗 계층에서 application data를 확인한다.

제목 없음

profile
코딩

0개의 댓글