[CS] 2.2 TCP/IP 4계층 모델

angie·2022년 10월 20일
0

CS

목록 보기
5/8
post-thumbnail

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



인터넷 프로토콜 스위트

  • 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 통신규약(프로토콜)의 모음
  • 인터넷 프로토콜 슈트 중 TCP와 IP가 가장 많이 쓰이기 때문에 TCP/IP 프로토콜 슈트라고도 불린다.

2.2.1 계층 구조

네트워크 계층을 나누는 이유?

  • 프로토콜에 따라 계층을 나눔으로서 통신에 필요한 작업을 명확히 구분하고 유지보수를 하기 쉬워진다.

TCP/IP 4계층과 OSI 7계층 비교

공통점

  • 계층화된 시스템을 사용하여 정보를 처리하고 논리적인 네트워킹 방법을 제공
  • 각 계층은 특정한 기능을 하므로써 오류 발생 시 문제가 발생하는 위치를 쉽게 찾아낼 수 있다.

차이점

  • OSI 모델이 TCP/IP 모델이 단일 계층으로 그룹화하는 여러 기능을 분할한다는 것
  • OSI 모델이 네트워크 기능을 더 많은 계층으로 분할한다는 사실은 문제 해결과 네트워크 성능 개선을 보다 간단하게 만든다.
  • 그러나 TCP/IP는 응용 프로그램이 더 많다는 이점이 있다.

TCP/IP가 현재 주로 사용되는 이유?

  • 1982년 TCP/IP의 사양이 결정되었을 때 유닉스 운영체제에서 TCP/IP를 탑재하였기 때문

TCP/IP 4계층

1) 애플리케이션 계층

  • FTP, HTTP, SSH, SMTP, DNS 등 응용프로그램이 사용되는 프로토콜 계층
  • 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 층

2) 전송 계층

  • 송신자와 수신자를 연결하는 통신 서비스를 제공
  • 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때의 중계 역할
  • TCP (전송 제어 프로토콜) : 가상회선 패킷 교환 방식 사용
  • UDP (사용자 데이터그램 프로토콜) : 데이터그램 패킷 교환 방식 사용

가상 회선 패킷 교환 방식

  • 각 패킷에는 가상회선 식별자가 포함
  • 모든 패킷을 전송하면 가상회선이 해제되고 패킷들은 전송된 '순서대로' 도착 (패킷 사이의 순서를 보장)

데이터그램 패킷 교환 방식

  • 패킷이 독립적으로 이동하며 최적의 경로를 선택
  • 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있음
  • 패킷이 도착한 순서가 다를 수 있음

TCP 연결 성립 과정 : 3-웨이 핸드셰이크


1. syn 단계 : 클라이언트는 서버에 클라이언트의 ISN을 담아 SYN을 보낸다. ISN은 새로운 TCP 연결의 첫 번째 패킷에 할당된 임의의 시퀀스 번호
2. SYN + ACK 단계 : 서버는 클라이언트의 YN을 수신하고 서버의 ISN을 보낸다. 승인번호로 클라이언트의 ISN + 1을 보낸다.
3. ACK 단계 : 클라이언트는 서버의 ISN + 1한 값인 승인번호를 담아 ACK를 서버에 보낸다.

  • 3-웨이 핸드셰이크 과정 이후 신뢰성이 구축되고 데이터 전송을 시작
  • TCP는 이 과정이 있기 때문에 신뢰성이 있는 게층이라고 한다.
  • UDP는 이 과정이 없기 때문에 신뢰성이 없는 계층이라고 한다.

TCP 연결 해제 과정 : 4-웨이 핸드셰이크

  • TCP 연결을 종료하려면 다음 4개의 TCP 패킷을 교환해야함

  1. 클라이언트 -> 서버

    • FIN으로 설정된 세그먼트 보냄
    • 클라이언트는 FIN_WAIT_1 상태로 응답을 기다림
  2. 서버 -> 클라이언트

    • ACK라는 승인 세그먼트를 보냄
    • 서버는 CLOSE_WAIT 상태로
    • 클라이언트가 ACK 세그먼트를 받으면 FIN_WAIT_2 상태
  3. 서버 -> 클라이언트

    • 2에서 ACK를 보내고 일정시간 이후에 클라이언트에 FIN이라는 세그먼트를 보냄
  4. 클라이언트 -> 서버

    • 클라이언트는 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보내면 서버는 CLOSED 상태가 됨
    • 이후 클라이언트는 어느 정도 시간을 대기한 후 연결을 닫고 모든 연결이 해제

TIME_WAIT?

그냥 연결을 바로 닫지 않고 일정시간을 기다릴까?

  1. 지연 패킷이 발생할 경우를 대비
  2. 두 장치가 연결이 닫혔는지 확인하기 위해

3) 인터넷 계층

  • 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송
  • IP, ARP, ICMP 등
  • 상대방이 제대로 받았는지 보장하지 않는 비연결형적 특징

4) 링크 계층

  • 전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달
  • 장치 간에 신호를 주고받는 규칙을 정하는 계층
  • 물리계층, 데이터 링크 계층으로 나누기도 함

계층 간 데이터 송수신 과정

  • 애플리케이션 계층 ~ 링크계층 : 캡슐화 과정
  • 링크 계층 ~ 애플리케이션 계층 : 비캡슐화 과정

캡슐화 과정

  • 상위 게층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정

비캡슐화 과정

  • 하위 계층에서 상위 계층으로 가며 각 계층의 헤더부분을 제거하는 과정



2.2.2 PDU

PDU (Protocol Data Unit)

  • 한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위
  • 헤더 : 제어 관련 정보들이 포함
  • 페이로드 : 데이터를 의미
  • 각 계층에서 부르는 명칭이 다르다

각 계층에서 부르는 명칭

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





내용 출처

profile
better than more

0개의 댓글