TCP/IP 4계층

한상우·2023년 6월 13일
0

cs

목록 보기
5/8

흐름


서버에서 파일 데이터를 클라이언트 프로세스로 전송하는 흐름을 간략히 정리했다.


캡슐화, 비캡슐화

캡슐화는 송신자가 수신자에게 데이터를 보낼 때 각 계층을 지나며 계층의 특징들이 담긴 헤더가 붙여지는 과정
비캡슐화는 캡슐화 과정의 역과정으로, 수신자측에서 캡슐화된 데이터를 까면서 응용계층까지 도달하는 것을 의미

PDU

Protocol Data Unit 의 약자로 헤더 + 데이터를 뜻함
애플리케이션 계층 : 메시지(데이터)
전송 계층 : 세그먼트(TCP), 데이터그램(UDP)
인터넷 계층 : 패킷
링크 계층 : 프레임(데이터 링크 계층), 비트(물리 계층)

OSI7계층

MTU

(Maximum Transmission Unit) 네트워크를 통신할 때 할 수 있는 가장 큰 PDU크기
이 크기를 기준으로 데이터가 쪼개져서 패킷화 된다.

네트워크 경로 상에 있는 장치중에 MTU보다 패킷이 크면, 패킷은 분할될 수도 있다.

  • IPv6는 분할을 허용하지 않아 전달을 하지 않을 수 있다. (무분별한 라우터들의 분할은 라우팅 속도 저하로 이어지기에 출발지에서만 분할할 수 있다)
  • IPv4 헤더에 flags 필드가 1이면 분할을 허용하지 않는다.

MSS

MTU는 IP헤더와 TCP헤더의 크기까지 합치지만, MSS(Maximum Segment Size)는 데이터의 크기만을 의미한다.

PMTUD

IPv6에서 출발지 장비가 패킷을 알맞게 분할하여 전송하기 위해 PMTUD 과정을 거친다.
이를 통해 모든 장비의 MTU에 맞게 데이터를 전송할 수 있다.


애플리케이션 계층


HTTP, SMTP, SSH가 대표적으로 서비스를 실질적으로 사용자에게 제공하는 층이다.

HTTP

  • 서버와 브라우저간, 서버와 서버간의 통신에 이용되는 데이터 송수신을 위한 프로토콜
  • 헤더를 통한 확장이 쉽다.
  • stateless하다.

SSH

  • 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜

FTP

  • 노드와 노드간의 파일을 전송하는데 사용되는 프로토콜

SMTP

  • 메일을 보낼 때 사용되는 프로토콜

전송 계층


TCP

  • 가상회선 패킷 교환 방식
  • 신뢰성 있음 (3-way handshake)
  • 오류검사 메커니즘

    재전송 : 시간 초과가 나면 데이터 재전송 시도
    체크섬 : 송신 데이터와 수신 데이터의 같음을 체크섬 값을 통해 비교한다.

  • 헤더가 20 ~ 60바이트로 가변

UDP

  • 데이터그램 패킷 교환 방식
  • 헤더가 8바이트로 고정
  • 브로드캐스트 지원함

3-Way Handshake

  1. 클라이언트가 서버에 클라이언트의 ISN을 담아 SYN을 보냄
    • ISN: TCP가 새로운 연결을 할 때 새로운 Sequence Number를 사용 (유니크하게 생성됨을 보장)
  2. 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN+1을 보냄
  3. 클라이언트는 서버의 ISN+1 값인 승인번호를 담아 ACK를 서버에 보냄

4-Way Handshake

  1. 클라이언트가 연결을 닫으려고 FIN으로 설정된 세그먼트를 보낸다. 그리고 FIN_WAIT_1상태로 서버의 응답을 기다림
  2. 서버는 클라이언트로 ACK 승인 세그먼트를 보낸다. 그리고 CLOSE_WAIT상태로 들어감. 클라이언트는 서버의 세그먼트를 받으면 FIN_WAIT_2상태로 들어감
  3. 서버는 LAST_ACK 상태가 되며 일정 시간 이후 클라이언트에 FIN 세그먼트를 보냄
  4. 클라이언트는 TIME_WAIT 상태가 되고 서버로 ACK를 보내서 서버는 CLOSED 상태가 됨. 이후 어느정도의 시간을 대기한 후 연결이 닫힘
    - 지연 패킷이 발생했을 때 데이터 무결성을 위해 패킷을 기다리는 시간.

인터넷 계층


IP, ICMP, ARP가 대표적이다. 전송계층에서 받은 세그먼트, 수신하며 받은 데이터그램을 패킷화하여 전송

ICMP

노드와 노드 사이에 통신이 잘 되는지를 확인할 때 쓰는 프로토콜
ping www.google.com 과 같이 데이터를 교환하는데 사용되는게 아니다.

IP 주소 체계

IPv4

  • 32bit로 표현된 주소체계
  • 8bit 단위로 점을 찍어 4개로 구분 (8비트 단위를 옥텟이라고 함)

IPv6

  • 128bit로 표현되는 주소체계
  • 서브네팅이 필요하지 않음
  • 16bit 단위로 클론(:)으로 8개로 구분 (앞의 연속되는 0은 생략 가능)
  • 앞의 64bit는 네트워크 주소, 뒤 64bit는 인터페이스 주소
  • IPv4 헤더의 불필요한 필드를 제거해 빠른 처리가 가능하게 함
    - IPv4는 체크섬 있지만, IPv6는 없음 (상위 프로토콜인 TCP, UDP에 체크섬 필드가 있어서)
  • IPSec이라는 데이터 패킷을 암호화하는 보안 네트워크 프로토콜이 내장되어 있음

서브넷마스크, 서브네팅

IP주소를 클래스 A, B, C로 구분지어 네트워크 주소, 호스트 주소로 나눈 클래스풀은
작은 네트워크가 필요한 조직은 너무 많은 IP를 가져가 낭비되는 문제가 발생합니다.
이를 해결하기 위해 클래스별로 나누는 것이 아닌, 서브넷마스크를 중심으로 나누는 주소체계를 사용

서브네팅: 네트워크를 나눔
서브넷: 서브네트워크, 쪼개진 네트워크
서브넷마스크: 서브네트워크를 위한 비트마스크


## 라우팅 --- 네트워크에서 데이터를 보낼 때 최적의 경로를 선택하는 과정으로 라우터가 이를 수행한다.

라우터는 네트워크 사이에서 데이터를 전달하는 장치로, 데이터를 목적지로 보낼 때 최적의 경로를 찾아 데이터를 넘겨주는 일(라우팅)을 수행. 라우팅 테이블을 기반으로 최적의 경로를 찾음

라우팅 테이블

IP주소를 기반으로 라우터의 위치를 저장한 테이블. 네트워크에 대한 정보와 연결하는 방법이 포함되어 있음

  • 네트워크 대상: 목적지 네트워크의 IP주소
  • 서브넷 마스크: 네트워크 주소를 설명할 때 쓰이는 값
  • 게이트웨이: 네트워크와 네트워크를 잇는 장치 (다른 대역으로 라우팅 해줄 수 있음)
  • 인터페이스: 게이트웨이로 가기 위해 거치는 장치 (인터페이스를 통해 게이트웨이에 접근 가능)
  • 메트릭: 우선순위를 표시. 동일한 라우팅테이블 요소가 2개 있을 때 낮은 값이 우선순위를 가짐

ARP, RARP


MAC 주소

네트워크 인터페이스 (흔히 NIC) 에 할당된 고유 식별자.

ARP

IP주소를 MAC주소로 변환
1. 해당 IP주소에 맞는 MAC주소를 찾기 위해 브로드캐스팅을 통해 연결된 네트워크에 있는 모든 장치에 보냄
2. 맞는 장치가 있다면 보낸장치에게 유니캐스트로 본인의 MAC주소를 포함한 데이터 전달해 주소를 찾게됨

RARP

MAC주소를 IP주소로 변환


public ip, private ip, NAT


NAT을 통해 public ip와 private ip를 구분한다. (IPv4 주소 부족 문제 해결을 위해)
외부와의 연결은 public ip를 사용하고 public ip 주소는 NAT를 통해서 private 주소로 매핑된다. 내부 IP가 노출되지 않는 장점이 있고 사설 네트워크에 속한 여러 호스트가 하나의 public ip를 사용하므로 ip주소를 절약할 수 있다.

우리가 일상에서 쓰는 공유기도 NAT 기능을 한다.
인터넷 회선 하나를 개통하고 여러 대의 호스트가 공인 IP주소를 사용해 인터넷에 접속한다.

profile
안녕하세요 ^^

0개의 댓글