5 분 소요

L3 : ICMP, IP, ROUTING의 프로토콜 등 다양했지만

L4 : UDP or TCP (둘중 하나를 선택해야함)

Layer 4 : 데이터 전달(L3), end-to-end data 전송을 위해서 logical communication(논리적 연결)

  • Connection-oriented(연결지향 tcp) vs connectionless(연결 없음 UDP)

L3(연결이 없다. 내 바로 뒤에 누구에게 전달할지 생각하는거.)

L4(끝단이 어디인지까지 생각, ip및 port번호로 식별, L3와의 연결지점 sap가 port가 된다.)



UDP

  • connectionless serivces(연결 없음.)
  • unreliable(비신뢰성)
    • ack를 기다리지 않는다.
    • 전송 후 신경쓰지 않는다.
  • error control function이 있냐 없냐로 udp와 tcp 구분
    • 오류제어는 없냐.
  • transparent(투명한)

tcp(transmission Control Protocol)

  • 그 반대.
  • connections-oriented services
  • reliable
    • ack기다리고
    • 전송후 신경쓰고
    • error control function
  • congestion control(flow,error동시에)
두가지 모두 IP 상위 계층위치에서 end-to-end로 segment를 전달하는 역할
  • ip layer(connection less, 이지만 라우터(유선)으로 연결해서 에러율이 적다. 라우터는 단순히 데이터 전달만.)
    • Best-effort(시간에 상관없이 어떻게돈 보내겠다. 안좋은뜻) delivery service(ip)상에서 애플리케이션 프로세스에게 적절하게 패킷 전달(soket to soket)Application 프로세스에게 적절하게 포캣 전달.(soket to soket)



Transport-Layer Multiplexing

L5 와 L4사이의 Sevice access Point를 Soket이라 한다.

L4 → L3 sap를 port라고 한다.

L4의 주요 역할 어떤 소켓으로 들어온걸 포트로 연결한다.
한 호스트 내의 다양한 프로세스로부터의 데이터 전달 역할

Multiplexing(다중화) : 여러 soket을 통해서 SDU를 받아 전송 (여러개 데이터를 하나로 합치는것)

Demulitplexing(역다중화) : 수신된 pdu를 적절한 소켓으로. (하나로 합쳐진 데이터를 나누는것)



Port number

  • 전송 계층에서의 식별자
    • 소켓에 대한 식별
  • 잘 알려진 포트 있음.

http://host:()

이것은 80번 포트로 접속 하는 것을 의미한다.



User Datagram Protocol(UDP)

  • 간단한 다중화/역다중화 기능의 프로토콜이다.
  • 세그먼트 전송 방식도 심플함
    • 연결과정없이 바로 전송 가능
————4byte—————
————4byte—————
     Data

UDP socket의 생성

  • Application process에서 socket 생성 즉시 transport layer에서 port 번호가 부여됨

Two tuple :

  • destination ip & port number 만 보고 전달
  • 상대방 host의 prot가 열려있느면 항상 전송 가능.
    • ip, port 번호를 지정해서 보내면 바로 전달이 됨.

udp 는 connection less다. 즉 보내고 만다.

장점

  • connnection establishment(연결 구축)과정이 불필요하다. (ack가 없다.)
  • connection state에 대한 관리 관련 동작 제한이 없다.
  • 오버헤드가 적다.
  • application-level의 data 전송 제어가 쉽다.(즉 어플리케이션이 잘 보내면 된다.)

단점

  • error control, flow control이 없다. flow control은 응용에서한다.
    • 메일이나 웹 서버에는 udp를 사용안하고 안정적인 tcp를 사용한다.
    • udp는 multi media 처럼 delay가 중요한 실시간 서비스에서 사용된다.



TCP

  • Connection-oriented
    • 즉각적인 응답.(ack)
    • connection establishment 과정이 존재한다.

Four tuple

  • Sorce IP/Port number
  • destination IP/Port number
  • source 에 대한 정보까지 대조하여 소켓에 매핑.

송신 측에서도 받을 준비가 되어있어야한다. = connection

이것이 TCP의 가장 중요한 역할이다.

Connection establishment

  • process간 three way handshake를 통해서 커넥션을 맺는다.
  • 특정 포트로 Connection establishment 메세지를 수신하고 나서 socket과 port번호가 연동됨.

client ——con req(나 이렇게 보낼께?)———> Sev

      <——-con conf(ok, 그럼 ack이렇게 보낼께?)—

     —-con complete(ok. 알겠어)-—>

connection을 맺을 때 어떤식으로 보낼지에 대한 파라미터 들이 들어가 있다.

data length, crc… 이런 것들.

(상대방 존재 알림, optional parameter, trainport entity resource 할당)

  • Client process에서는 initation(개시)을 함
    • 서버 프로세스에서는 ip address/port에 대해 연결 승인
  • 컨펌을 받는다 = 리소스 할당 되었다.
  • 목적 : 상대방의 존재 알림, optional parameter 결정, transport entity,resource 할당

——————————-4byte——————————————-
——————————-4byte——————————————-
——————————-4byte——————————————-
——————————-4byte——————————————-

options

data

  • Sequence no. : Byte 시작점.
  • Ack no : 다음번 수신해야할 Byte offset ex)1000이라면 999까지는 잘 받았어! 라는 뜻
  • Recieve window : 한번에 최대로 보낼 수 있느 byte 수 (2^16승 kb까지 보낼 수 있다.)
  • Urgent(즉각적 수행) 보통 마지막 segment에 관용적으로 Urgent를 집어 넣음.
  • ack : 1 이면 ack, 0이면 ack가 아니다.
  • 커넥션에 관련된 PSH(상태),SYN,FIN
  • checksum : 전체 데이터를 다 표현
  • Opting : data length

L4 SDU

L3 PCI + SDU

(sr IP, dest ip) + (sc port, dest port) 둘이 붙어 있는 구조이다.

크레딧 = 리시브쪽에서 송신측에게 더 보낼 수 있는 기회를 주는것?

UDP와 다르게 TCP는 congestion control을 수행

  • Network의 혼잡을 방지하기 위해 자체적으로 flow control 수행(윈도우 크기 조절)
  • 일시적 delay가 커질 수 있으나 network 전체 관점에서 이득
  • Window management : 일반적으로 window가 크면 congestion을 유발할 가능성이 크므로 아래와 같은 규칙하에 관리
    • slow start
    • dynamic window sizing



Congestion Control

예를 들어 막 보내다가 congestion발생하면 임의로 윈도우 사이즈를 팍 줄인다음에 그다음부턴 천천히 확장한다.(이런 알고리즘은 굉장히 다양하다.)

!


udp : syn , error control, flow control 없다., 빠르다. 실시간 서비스.

tcp : syn , error control, flow control 3개 다 있다. 느리다. 안정적서비스 웹 문서, 메일

중요한 것은 l4의 핵심 기능은 port간 전달이다.

L3 PCI + SDU

(sr IP, dest ip) + (sc port, dest port) 둘이 붙어 있는 구조이다.

이것을 사용하는 두가지 알고리즘. L3,L4 로 동작하는 두가지 알고리즘. NAT,



Network Address Translation(NAT)

NAT 기술을 포함한 게이트웨이로부터~

IPv4를 오늘날까지 생존하게 한 알고리즘

절대적으로 수가 부족한 IP address를 국지적으로 사용할 수 있게 해줌

Small office, home office subnet에 적합

비슷한 개념을 확장하여 LTE에서도 활용중

Small Office Home Office (SOHO)

초기에는 ISP로부터 일정 IP 대역을 할당 받움

이 subnet이 점점 커지면서 IP 대역을 더 많이 요구하게 되면 연속된 IP를 못받을 수있음

  • Network Address Translation(네트워크 주소 번역)
    • 하나의 IP로 할당 받아 내부의 subnet의 여러 host들에게 공통으로 서비스를 하는 방식
    • 내부적으로 IP를 따로 주면서 외부로 나갈 때 할당된 하나의 IP를 사용
  • Out-going IP + port 번호와 내부 IP/port로 mapping
  • NAT translation table을 통해 outer->internal routing을 수행
  • 초기 Outgoing packet에 대해 translation table 항목을 생성하고 port번호 부여

바깥에는 공인 IP로 보이고, 내부에서는 공인되지않은

NAT table에는

바깥에 대한 ip, port와 안쪽 ip,port를 매핑한다.



NAT의 역할

  • 외부 IP 하나를 통해 여러 host들이 손쉽게 networking할 수 있음
    • 부족한 IP address 수에 대한 강력한 보완책이 됨
  • Internal network내 host를 감추는 역할
    • 외부에서는 어떤 host든 single IP로 밖에 보이지 않음
  • 한계점
    • In-going packet으로 연결이 시작되는 서비스가 불가능
    • 밖에서 사설 ip에게 데이터 전송하고 싶은데 불가능



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에 접속 가능



NAT 한계점

  • Port 번호의 용도가 잘못됨
    • 호스트를 지칭하는 것이 아닌, 서비스를 지칭해야한다.(소켓을 지칭해야한다.)
  • 레이어드 아키텍쳐 컨셉이 어긋남
    • IP header에 대한 관리는 L3에서만 해야함.(L4의 정보를 보고 L3를 바꾸는 행위)
  • ip header에 대한 생성조작은 end-to-end단계에서만 다뤄져야함
  • 하지만 ipv4의 부족을 막을 수 있는 기술.
  • 이것은 프로토콜이라기 보단 게이트 웨이의 기술이다.



Firewall

→ Gateway → 1.1.1.1

패킷이 나갈때 다른 ip로 간다음에 redirect.하면 뚫을 수 있음.

  • Three goals
  • 모든 양방향의 traffic이 firewall을 통해서 지나가도록 함
    • 외부 internet과 관리 대상인 내부 망의 boundary 역
  • Local security policy에 의해 규정된 허용 트래픽만 통과시킴
    • 유입/유출되는 traffic에 대해 관리자가 지정한 정책에 따라 흐름을 제어
  • Firewall 자신은 보안에 매우 강해야 함
    • firewall이 공격당하기 쉬우면 차라리 없는 게 더 좋음



Zero Trust (제로 트러스트)

  • 제로 트러스트 보안 모델은 네트워크 내부와 외부를 구분하지 않고 모든 접근 요청을 검증하는 것을 기본으로 한다.

  • “절대 신뢰하지 않고 항상 검증한다(Never Trust, Always Verify)”는 원칙

  • 사용자나 기기의 신뢰성을 항상 확인하여 보안을 유지. 최근 보안 환경에서 중요한 패러다임으로 자리잡고 있다.



Traditional packet filters

  • Administractor -specific rule(관리자별 규칙)에 따라
  • 게이트웨이 라우터는 L4의 헤더를 까볼 수 있으니깐

222.22/16 서비넷에서

1024번 부터 (임의로 사용하느 포트에 대해서)

80포트로 보내는 것을 허용

80번 포트로부터 나에게 오는 것을 허용



Stateful Packet Filter

connection 별로 필터링 규칙 적용

각 패킷에 대해 별도로 필터링 규칙을 적용하는 트레디셔널 패킷 필터와는 다름

커넥션의 핸드쉐이크 절차를 추적하며 필터링가능



Application Gateway

Filtering이 packet 기반(IP, port number 등)이 아닌 application 수준의 상황에 따라 이루어져야 할때가있음

▪ e.g.) 특정 internal user에게만 telnet service 허용 ▪ Application gateway

Firewall과 협업해서 Packet filter를 함

IP/TCP/UDP 보다 윗계층에서 application data를 확인

댓글남기기