네트워크 (2) - TCP/IP 4계층 모델

샐러드맛집·2022년 12월 29일
0

CS공부

목록 보기
4/10

본 포스트는 '면접을 위한 CS 전공지식 노트'를 기반으로 공부한 내용을 정리한 포스트입니다.

계층 구조

TCP/IP 4계층
OSI 7계층
사진 출처

특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계됨

애플리케이션 계층

FTP, HTTP, SSH, DNS 등 응용 프로그램이 사용되는 프로토콜 계층
웹서비스, 이메일 등 서비스를 제공하는 계층

전송계층

전송(transport) 계층
송진자와 수신자를 연결하는 통신 서비스를 제공
연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어 등을 제공할 수 있음
대표적으로 TCP, UDP

  • TCP
    패킷 사이의 순서를 보장
    연결지향 프로토콜
    신뢰성 보장
    수신 여부 확인
    가상회선 패킷 교환 방식 사용

  • UDP
    순서를 보장하지 않음
    수신 여부 확인하지 않음
    데이터그램 패킷 교환 방식 사용 (단순히 데이터만 줌)

가상회선 패킷 교환 방식 (virtual circuit)
각 패킷에 가상회선 식별자가 포함되며, 모든 패킷을 전송하면 가상 회선이 해제되고, 패킷들을 전송된 '순서대로' 도착하는 방식

데이터그램 패킷 교환 방식
패킷이 독립적으로 이동하며 최적의 경로를 선택하여 전송됨
하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있음
도착한 '순서가 다를 수' 있는 방식


TCP 연결/해제 과정

TCP는 신뢰성 확보를 위해 연결 시 '3-way handshake' 라는 과정을 통해 연결을 함
사진 출처 및 설명 참조

연결 해제 시에는 '4-way handshake'를 통해 연결을 해제함.

연결해제 시 서버로부터 FIN을 받은 클라이언트가 곧바로 종료하지 않은 이유
1. 지연된 패킷을 기다리기 위해
네트워크 상의 문제 등을 이유로 서버에서 전송한 패킷이 지연될 수 있기 때문에 일정 시간을 기다려서 모든 패킷이 도착하기를 기다리는 것.
2. FIN을 받은 클라이언트는 서버에게 ACK을 보내게 되는데 이 ACK이 서버에게 제대로 도착하지 않은 경우 서버측이 정상적으로 종료되지 못하기 때문에 이를 방지하기 위해 일정 시간 기다림. (서버측에서 ACK이 도착하지 않으면 다시 FIN을 보낼수도 있음)
추가 설명 참조 링크


인터넷 계층

IP 주소를 사용하여 지정된 목적지로 전송하기 위해 사용되는 계층
사용되는 프로토콜 : IP, ARP, ICMP 등
패킷을 수신해야할 상대의 주소(목적지 주소)를 지정하여 데이터를 전달
Best Effort 방식 : 상대방의 수신 여부를 보장하지 않음


링크 계층

전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달하며 장치 간에 신호를 주고받는 '규칙'을 정하는 계층

  • 전이중화 통신 (Full duplex)
    양쪽 장치가 동시에 송수신할 수 있는 방식
    현대 고속 이더넷이 이 방식을 기반으로 통신함

  • CSMA/CD (Carrier Sense Multiple Access with Collision Detection)
    반이중화 통신 중 하나 (송수신이 동시에 X)
    데이터 전송 시 충돌이 감지되면 일정 시간 이후 재전송하는 방식

  • 반이중화 통신(half duplex)
    양쪽 장치는 서로 통신할 수 있지만, 동시에 통신 X
    한번에 한 방향만 송신가능 (반대쪽에서는 수신만)

  • CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance)
    반이중화 통신 중 하나

  1. 데이터 송신을 하기 전 무선 매체를 관찰
  2. 캐리어 감지 : 회선이 비어 있는지 판단
  3. IFS(Inter FrameSpace) : 랜덤 값을 기반으로 정해진 시간만큼 기다림. 만약 무선 매체가 사용 중이면 점차 그 간격을 늘려가며 대기
  4. 회선이 비어있으면 데이터를 송신

계층 간 데이터 송수신 과정


사진 출처

애플리케이션 계층에서 아래 계층으로 내려가며 캡슐화 과정을 거치고, 수신측에서는 비캡슐화 과정을 거쳐 데이터를 수신함


PDU (Protocol Data Unit)

PDU : 네트워크 한 계층에서 다음 계층으로 데이터가 전달될 때의 단위
PDU는 제어 관련 정보들이 포함된 '헤더', 데이터를 의미하는 '페이로드'로 구성됨
계층마다 부르는 명칭이 다름

  • 애플리케이션 계층 : 메시지
  • 전송 계층 : 세그먼트(TCP), 데이터그램(UDP)
  • 인터넷 계층 : 패킷
  • 링크 계층 : 프레임(데이터 링크 계층), 비트(물리 계층)
profile
샐러드 싫음

0개의 댓글