본문 바로가기
Team

[CS 스터디] TCP/IP 4계층 모델

by seungh2 2022. 12. 20.

Internet protocol suite (인터넷 프로토콜 스위트)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 프로토콜의 집합.

대표적으로 TCP/IP 4계층과 OSI 7계층 모델


TCP/IP 4계층 모델

  • 네트워크에서 사용되는 통신 프로토콜의 집합
  • 프로토콜의 네트워킹 범위에 따라 네 개의 추상화 계층으로 구성됨
    • Application layer
    • Transport layer
    • Internet layer
    • Link layer
  • 특정 계층이 변경되어도 다른 계층이 영향을 받지 않도록 설계되었다.
    • Transport layer에서 TCP를 UDP로 변경했다고 해서 인터넷 웹 브라우저를 다시 설치해야 하는 것이 아니듯

Application Layer

  • 응용 프로그램이 사용되는 프로토콜 계층
  • 서비스를 실질적으로 사람들에게 제공하는 계층
  • ex)
    • FTP (File Transfer Protocol)
      • 장치와 장치 간의 파일을 전송하는데 사용되는 표준 통신 프로토콜
    • HTTP (HyperText Transfer Protocol)
      • World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는데 쓰는 프로토콜
    • SSH (Secure SHell)
      • 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
    • SMTP (Simple Mail Transfer Protocol)
      • 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
    • DNS (Domain Name Server)
      • 도메인 이름과 IP 주소를 매핑해주는 서버
      • IP 주소가 바뀌어도 사용자들에게 똑같은 도메인 주소로 서비스 가능.
        • 네이버의 IP주소가 바뀌어도 사용자는 www.naver.com으로 접속 가능

Transport Layer

  • 송신자와 수신자를 연결하는 통신 서비스를 제공
  • 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공
  • application layer와 internet layer 사이의 데이터가 전달될 때 중계 역할
  • ex)
    • TCP(Transmission Control Protocol)
      • 패킷 사이의 순서를 보장하고 에러없이 교환하며 수신 여부 확인
      • 가상회선 패킷 교환 방식 사용
        • 각 패킷에는 가상회선 식별자가 포함
        • 모든 패킷을 전송하면 가상회선이 해제되고
        • 패킷들은 전송된 순서대로 도착
        • 한 곳에서 만들어진 패킷들은 하나의 회선을 사용. (같은 경로)
      • TCP 연결 성립 과정
        • 신뢰성을 확보하기 위해 3-way handshake 작업 진행
        1. SYN(Synchronization 연결 요청 플래그)
        2. 클라이언트가 서버에게 ISN(8000)을 담아 SYN 세그먼트를 보낸다.
        3. SYN + ACK
        4. 서버는 클라이언트가 보낸 SYN세그먼트를 수신하고 서버의 ISN(15000)과 승인번호로 클라이언트의 ISN+1(8001)을 담아 세그먼트를 보낸다.
        5. ACK(Acknowledgement. 응답 플래그)
        6. 클라이언트는 서버의 ISN+1(15001)한 값을 승인번호로 담아 ACK 세그먼트를 서버에 보낸다.
        ISN (Initial Sequence Numbers)
        • 초기 네트워크 연결을 할 때 할당된 32비트 고유 시퀀스 번호
      • TCP 연결 해제 과정. 4-way handshake
        1. FIN클라이언트는 FIN_WAIT_1 상태로 서버의 응답을 기다림
        2. 클라이언트가 연결을 닫기 위해 FIN 세그먼트를 보냄
        3. ACK서버는 CLOSE_WAIT 상태.
        4. 클라이언트가 ACK 세그먼트를 받으면 FIN_WAIT_2 상태.
        5. 서버는 클라이언트에게 ACK 세그먼트를 보냄
        6. FIN서버는 LAST_ACK 상태
        7. 서버는 ACK를 보내고 일정 시간 후에 클라이언트에게 FIN 세그먼트를 보냄
        8. ACK서버는 CLOSED 상태클라이언트와 서버의 모든 자원의 연결 해제
        9. 클라이언트는 어느 정도 시간을 대기한 후 CLOSED 상태
        10. 클라이언트가 FIN 세그먼트를 받으면 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보냄
        • TIME_WAIT 상태의 필요성
          • 지연 패킷이 발생할 경우를 대비하기 위해 (데이터 무결성을 위해)
          • 두 장치가 연결이 닫혔는지 확인하기 위해
            • 서버가 LAST_ACK에서 CLOSED가 될 시간을 주는 것
    • UDP(User Datagram Protocol)
      • 안정성을 보장하지 않음
      • 전달 확인 및 순차 보장 기능이 없음
      • 오버헤드가 작고 지연시간이 짧다.
      • 단순히 데이터만 주는 데이터 그램 패킷 교환 방식 사용
        • 패킷이 독립적으로 이동하며 최적의 경로를 선택
        • 한 곳에서 만들어진 패킷이더라도 서로 다른 경로로 전송될 수 있으며 도착 순서가 다를 수 있다.

Internet Layer

  • 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층
  • 패킷을 수신해야 할 상대의 주소를 지정하여 데이터를 전달
  • 상대방이 제대로 받았는지에 대해 보장하지 않음
  • ex)
    • IP
    • ARP
    • ICP

Link Layer

  • 전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달
  • 장치 간에 신호를 주고받는 ‘규칙’을 정하는 계층
  • Physical layer와 Data link layer로 나누기도 함
    • Physical layer
      • 무선 LAN과 유선 LAN을 통해 0과 1로 이루어진 데이터를 보내는 계층
      • 유선 LAN을 이루는 이더넷은 IEEE802.3 프로토콜을 따르며 전이중화 통신을 사용
      • 전이중화 통신 full duplex
        • 양쪽 장치가 동시에 송수신할 수 있는 방식
        • 송신로와 수신로로 나눠서 데이터를 주고받으며 현대의 고속 이더넷은 이 방식을 기반으로 통신
        • 양방향 통신이 가능하기 때문에 충돌 가능성이 없어 충돌을 감지하거나 방지하는 메커니즘은 필요없음
      • 반 이중화 통신 half duplex
        • 양쪽 장치는 서로 통신할 수 있지만 동시에는 통신할 수 없으며 한 번에 한 방향만 통신할 수 있는 방식
        • 장치가 수신하기 시작하면 전송이 완료될 때 까지 기다려야 한다.
        • 둘 이상의 장치가 동시에 전송하면 충돌이 발생하기 때문에 충돌 방지 시스템이 필요
        • CSMA/CD
          • Carrier Sense Multiple Access with Collision Detection
          • 전이중화 통신 이전에 유선 LAN에 반이중화 통신 중 하나
          • 데이터를 보낸 이후 충돌이 발생한다면 일정 시간 이후 재전송하는 방식
          • 한 경로를 기반으로 데이터를 보냄
        • CSMA
          • 반 이중화 통신 중 하나
          • 장치에서 데이터를 보내기 전에 캐리어 감지 등으로 사전에 가능한 한 충돌을 방지하는 방식
          1. 데이터를 송신하기 전에 무선 매체를 살핌
          2. 캐리어 감지 : 회선이 비어있는지 확인
          3. IFS : 랜덤 값을 기반으로 정해진 시간만큼 기다리며, 만약 사용 중이라면 점차 그 간격을 늘려가며 기다림
          4. 이후에 데이터를 송신
      • 유선 LAN을 이루는 케이블
        • twisted pair cable
          • 하나의 케이블 처럼 보이지만 실제로는 8개의 구리선을 두 개씩 꼬아서 묶은 케이블
        • 광섬유 케이블
          • 광섬유로 만든 케이블
          • 레이저를 이용해 통신하기 때문에 구리선과 비교할 수 없을 만큼의 장거리 및 고속 통신이 가능
          • 보통 100Gbps의 데이터를 전송
          • 광섬유 내부와 외부를 다른 밀도를 가지는 유리나 플라스틱 섬유로 제작해 한 번 들어간 빛이 내부에서 계속적으로 반사하며 전진해 반대편 끝까지 가는 원리를 이용
          • 빛의 굴절율이 높은 부분을 코어, 낮은 부분을 클래딩
      • 무선 LAN을 이루는 주파수
        • Wireless Local Area Network
        • 무선 신호 전달 방식을 이용하여 2대 이상의 장치를 연결하는 기술
        • 비유도 매체인 공기에 주파수를 쏘아 무선 통신망을 구축
        • 주파수 대역
          • 2.4GHz
            • 장애물에 강한 특성
            • 전자레인지, 무선 등 전파 간섭이 일어나는 경우가 많음
          • 5GHz
            • 사용할 수 있는 채널 수도 많고 동시에 사용할 수 있기 때문에 상대적으로 깨끗한 전파 환경 구축 가능
            • 보통 5GHz 사용
        • 와이파이
          • 전자기기들이 무선 LAN 신호에 연결할 수 있게 하는 기술
          • 무선 접속 장치(Access Point)가 있어야 함. = 공유기 필요
          • 공유기를 통해 유선 LAN에 흐르는 신호를 무선 LAN 신호로 바꿔주어 신호가 닿는 범위 내에서 무선 인터넷을 사용할 수 있게 됨
        • BSS (Basic Service Set)
          • 기본 서비스 집합
          • 동일한 BSS 내에 있는 AP들과 장치들이 서로 통신이 가능한 구조
          • 근거리 무선 통신을 제공
          • 하나의 AP만을 기반으로 구축이 되어 있어 사용자가 한 곳에서 다른 곳으로 자유롭게 이동하며 네트워크에 접속하는 것은 불가능
        • ESS (Extended Service Set)
          • 하나 이상의 연결된 BSS 그룹
          • 장거리 무선 통신을 제공
          • BSS보다 더 많은 가용성과 이동성을 지원
          • 사용자가 한 곳에서 다른 곳으로 자유롭게 이동하며 중단 없이 네트워크에 계속 연결 가능
    • Data link layer
      • 이더넷 프레임을 통해 에러 확인, 흐름 제어, 접근 제어를 담당하는 계층
      • 이더넷 프레임

        • Preamble : 이더넷 프레임 시작
        • SFD(Start Frame Delimiter) : 다음 바이트부터 MAC 주소 필드 시작
        • DMAC, SMAC : 수신, 송신 MAC 주소
        • EtherType : 데이터 계층 위의 계층인 IP 프로토콜 정의.
        • Payload : 전달받은 데이터
        • CRC : 에러확인 비트 
          • MAC 주소
            • 컴퓨터나 노트북 등 각 장치에는 네트워크에 연결하기 위한 장치(LAN 카드)가 있는데 이를 구별하기 위한 식별번호로 6byte로 구성된다.

계층 간 데이터 송수신 과정

  • Application layer에서 Link layer까지 클라이언트가 보내는 요청 값들이 캡슐화를 거쳐 전달되고 Linke Layer를 통해 해당 서버와 통신을 하고 해당 서버의 Linke Layer부터 Application Layer까지 비캡슐화 과정을 거쳐 데이터가 전송된다.
  • 캡슐화 과정

    • 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정
    • Application Layer의 데이터가 Transport Layer로 전달되면서 “세그먼트” 또는 “데이터그램”화되며 TCP(L4) 헤더가 붙는다.
    • Internet Layer로 가면서 IP(L3) 헤더가 붙으며 “패킷”화가 된다.
    • Link Layer로 전달되면서 프레임 헤더와 프레임 트레일러가 붙어 “프레임”화가 된다. 
  • 비캡슐화 과정

 

    • 하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정
    • 캡슐화된 데이터를 받으면 Linke Layer에서 “프레임”화된 데이터를 다시 “패킷”화, “세그먼트”나 “데이터그램”화를 거쳐 “메시지”화가 된다.
    • 최종적으로 사용자에게 Application의 PDU인 메시지로 전달된다. 

PDU

  • Protocol Data Unit
  • 네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위
  • 제어 관련 정보들이 포함된 “헤더”, 데이터를 의미하는 “페이로드”로 구성되어 있으며 각 계층마다 부르는 명칭이 다르다.
  1. Application Layer : 메시지
  2. Transport Layer : 세그먼트 Segment(TCP), 데이터그램 Datagram(UDP)
  3. Internet Layer : 패킷 Packet
  4. Link Layer : 프레임 Frame(Data Link Layer), 비트 Bit(Physical Layer)
728x90

'Team' 카테고리의 다른 글

[CS스터디] DB-트랜잭션과 무결성, 데이터베이스 종류  (0) 2023.01.05
[CS 스터디] OS - 메모리  (0) 2022.12.29
[스터디] 5월 알고리즘 스터디  (0) 2022.05.27
[블록체인]  (0) 2021.05.30
[블록체인] 트러플1  (0) 2021.05.10

댓글