본문 바로가기

CS

[면접을 위한 cs 전공지식 노트] 2.2. TCP/IP 4계층 모델

728x90

 

 

 


🔑TCP/IP 4계층 모델

  • 네트워크에서 사용되는 통신 프로토콜의 집합으로 계층들은 프로토콜의 네트워킹 범위에 따라 네 개의 추상화 계층으로 구성됨
  • 계층구조
애플리케이션 계층
전송 계층
인터넷 계층
링크 계층

 


 

🔑 애플리케이션 계층

  • FTP, HTTP, SSH, SMTP, DNS 등 응용프로그램이 사용되는 프로토콜 계층
    • FTP : 장치 간 파일을 전송하는데 사용되는 표준 프로토콜
    • SSH : 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
    • HTTP : 데이터 통신의 기초, 웹 사이트를 이용하는 데 사용되는 프로토콜
    • SMTP : 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
    • DNS : 도메인 이름과 IP주소를 매핑해주는 서버
  • 실질적으로 서비스를 제공함

 

🔑 전송 계층

  • 송신자와 수신자를 연결하는 통신 서비스 제공
  • 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어 제공
  • 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때 중계 역할을 함
  • 대표적으로 TCP, UDP

🔑TCP

  • 패킷 사이 순서를 보장하고 연결 지향 프로토콜을 사용해 연결하여 신뢰성을 구축해서 수신여부를 확인 함
  • 가상회선 패킷 교환 방식 사용
    • 각 패킷에는 가상회선 식별자가 포함되어있음
    • 모든 패킷을 전송하면 가상 회선이 해제되고 패킷들은 전송된 순서대로 도착함
    • 패킷이 회선을 따라서 순서대로 수신자에게 도착!

🔑 TCP 연결 성립과정 : 3웨이 핸드쉐이크(3-way handshake)

3way handshake

  1. SYN 단계 : 연결요청 플래그
    클라이언트가 서버에 자신의 ISN을 담아 SYN에 보냄
    ISN은 새로운 TCP 연결의 첫번째 패킷에 할당된 임의의 시퀀스 번호로 장치마다 다를 수 있음
  2. SYN+ACK 단계 : 연결요청 플래그 + 응답 플래그
    서버는 클라이언트의 SYN수신
    서버의 ISN을 보내고 승인번호로 클라이언트의 ISN+1을 보냄
  3. ACK단계 : 응답 플래그
    클라이언트는 서버의 ISN+1 값의 승인 번호를 담아 ACK를 서버에 보냄
  • 3웨이 핸드 쉐이크 과정을 통해 TCP는 신뢰성을 얻게 됨

 

 

🔑TCP 연결 해제 과정 : 4웨이 핸드쉐이크(4-way handshake)

  1. 먼저 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세크먼트를 보냄
    클라이언트는 FIN_WAIT_1상태로 들어가고 서버의 응답을 기다림
  2. 서버는 클라이언트로 ACK라는 승인 세그먼트를 보내고 CLOSE_WAIT상태로 들어감
    클라이언트가 세그먼트를 받으면 FIN_WAIT_2상태로 들어감
  3. 서버는 ACK를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보냄
  4. 클라이언트는 TIME_WAIT상태가 되고 다시 서버로 ACK를 보내 서버는 CLOSED상태가 됨                                                                        이후에 클라이언트는 어느 정도 시간을 대기한 후 연결이 닫히고                                                                                                                     클라이언트와 서버의 모든 자원이 연결 해제됨 
    • TIME_WAIT 상태
      • 일정 시간 후 연결을 닫음
      • 소켓이 바로 소멸되지 않고 일정 시간 유지되는 상태로 지연 패킷 등의 문제점을 해결하는데에 사용함. OS마다 다를 수 있음
      • 지연 패킷이 발생할 경우 대비하기 위함
        패킷이 뒤늦게 도달하고 이를 처리하지 못하면 데이터 무결성 문제가 발생함
        • 데이터 무결성 : 데이터의 정확성과 일관성을 유지하고 보증하는 것
      • 두 장치가 연결이 닫혔는지 확인하기 위해 필요함
        LAST_ACK 상태에서 닫히면 다시 새로운 연결을 하고자 할 때 장치는 계속 LAST_ACK상태로 있게 되어 접속 오류가 발생하게 됨

🔑UDP

  • 순서가 보장되어있지 않고 수신 여부를 확인하지 않음
  • 단순히 데이터만 주는 데이터그램 패킷 교환 방식을 사용
    • 패킷이 독립적으로 이동하며 최적의 경로를 선택해 감
    • 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있고 도착한 순서가 다를 수 있음

 

🔑 인터넷 계층

  • 장치로부터 받은 네트워크 패킷을 IP주소로 지정된 목적지로 전송하기 위해 사용
  • IP, ARP, ICMP등이 있음
  • 패킷을 수신해야 할 상대의 주소를 지정해 데이터를 전달함
  • 상대가 데이터를 제대로 받았는지 보장하지 않는 비연결형적의 특징

 

🔑링크계층, 네트워크 접근 계층

  • 전선, 광섬유, 무선 등 실질적으로 데이터를 전달하며 장치 간 신호를 주고 받는 규칙을 정하는 계층
  • 물리 계층
    • 무선 LAN과 유선 LAN을 통해 0과 1로 이루어진 데이터를 보내는 계층
      • 유선 LAN
        • 유선 LAN을 이루는 이더넷 IEEE802.3이라는 프로토콜을 따름
        • 양쪽 장치가 동시에 송수신하고 송신로와 수신로로 나눠 데이터를 주고 받는 전이중화 통신을 사용함
        • 유선 LAN을 이루는 케이블
          • TP케이블, 트위스트 페어 케이블 : 8개의 구리선을 두개씩 꼬아 하나로 묶은 케이블
          • 광섬유 케이블 : 광섬유로 만들어 레이저를 이용해 통신하기 때문에 구리서노가 비교할 수 없을 만큼 장거리 및 고속 통신이 가능함
      • 무선 LAN
        • 무선 신호 전달 방식을 이용해 2대 이상의 장치를 연결함
        • 송수신에 같은 채널을 사용해 반이중화 통신을 사용함
          • 양쪽 장치는 서로 통신할 수 있지만 동시에 통신할 수 없음
          • 한 번에 한 방향만 통신 가능
          • 장치가 신호를 수신하기 시작하면 응답하기 전에 전송이 완료될 때까지 기다려야 함
          • 둘 이상의 장치가 동시에 전송하면 충돌이 발생해 메시지가 손실되거나 왜곡될 수 있어 충돌방지 시스템이 필요함
          • CSMA/CA
            반이중화 통신 중 하나로 장치에서 데이터를 보내기 전에 캐리어 감지 등으로 사전에 가능한 한 충돌을 방지하는 방식을 사용함
        • 무선 LAN을 이루는 주파수
          • 2.4GHz : 장애물에 강하지만 전파간섭이 일어날 수 있음
          • 5GHz : 사용할 수 있는 채널이 많고 동시 사용이 가능해 상대적으로 깨끗한 전파 환경 구축이 가능
          • 와이파이(wifi)
            • 전자기기들이 무선 LAN 신호에 연결할 수 있게 함
            • 공유기를 통해 유선 LAN에 흐르는 신호를 무선 LAN신호로 바꿔 신호가 닿는 범위 내에서 무선 인터넷을 사용할 수 있게 됨
          • BSS : 기본 서비스 집합, 동일 BSS내에 있는 AP장치들이 서로 통신 가능한 구조
          • ESS : 하나 이상 연결된 BSS 구조, 사용자는 한 장소에서 다른 장소로 이동해 중단없이 네트워크에 계속 연결할 수 있음
      • 데이터 링크 계층
        • 이더넷 프레임을 통해 전달받은 데이터의 에러를 검출하고 캡슐화함
          • Preamble : 이더넷 프레임의 시작을 알림
          • SFD(Start Frame Delimiter) : 다음 바이트부터 MAC 주소필드가 시작됨을 알림
          • DMAC, SMAC : 수신, 송신 MAC 주소
          • Ether type : 데이터 계층위의 계층인 IP프로토콜 정의
          • Payload : 전달받은 데이터
          • CRC : 에러확인 비트
Preamble
(7byte)
SFD(1byte) DMAC (6byte) SMAC (6byte) Ether type
(2byte)
Payload CRC (4byte)

 


 

🔑계층간 데이터 송수신 과정

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

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

 


 

🔑PDU(Protocol Data Unit)

  • 네트워크의 어떤 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위
  • 헤더와 페이로드로 구성
    • 헤더(header) : 제어 관련 정보 포함
    • 페이로드(payload) : 데이터, 계층마다 명칭이 다름
      • 애플리케이션 계층 : 메시지
      • 전송 계층 : 세그먼트(TCP), 데이터그램(UDP)
      • 인터넷 계층 : 패킷
      • 링크 계층 : 프레임(데이터 링크 계층), 비트(물리 계층)

 

 

 


 

TCP/IP 계층이 무엇으로 구성되어있는지 정도는 이해하고 있지만, 3웨이 핸드쉐이크나 캡슐화 과정같은 조금이라도 복잡한 내용은 아직 이해가 부족하다.

더 많은 레퍼런스 찾아보고 문서 보면서 이해해보자

728x90