Computer Science 📚

[cs] 네트워크 II - TCP/IP, PDU etc.

leejaejae 2024. 6. 30. 18:12

1. TCP/IP 란
2. 계층 간 데이터 송수신 과정
3. 네트워크에서 PDU란


1. TCP/IP 란

  • TCP/IP(Transmission Control Protocol)
    • 인터넷 프로토콜 스위트(Internet protocol suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합
    • 이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명하기도 함
    • 이 계층들은 특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계되어 있음 

  • 애플리케이션 계층
    • 응용 프로그램이 사용되는 프로토콜 계층
    • 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 층

      ① FTP: 장치와 장치 간의 파일을 전송하는데 사용되는 표준 통신 프로토콜

      ② SSH: 보안되지 않는 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜

      ③ HTTP: World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 쓰는 프로토콜

      ④ SMTP: 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜

      ⑤ DNS: 도메인 이름과 IP 주소를 매핑해주는 서버

  • 전송 계층
    • 송신자와 수신자를 연결하는 통신 서비스를 제공하며 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공함
    • 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때 중계 역할을 함
    • 대표적으로 UDP(데이터그램 패킷 교환 방식), TCP(가상 회선 패킷 교환 방식)가 있음

    • UDP
      • 데이터그램 패킷 교환 방식 사용(순서를 보장하지 않고 수신 여부를 확인하지 않으며 단순히 데이터만 주는 방식)
    • TCP
      • 패킷 사이의 순서를 보장하고 연결지향 프로토콜을 사용해 연결을 하여 신뢰성을 구축해서 수신 여부를 확인
      • 가상 회선 패킷 교환 방식(각 패킷에는 가상 회선 식별자가 포함되며 모든 패킷을 전송하면 가상 회선이 해제되고 패킷들은 전송된 '순서대로' 도착하는 방식) 사용
    • TCP 연결 성립 과정
      • 신뢰성 확보를 위해 3-way handshake 작업 진행 
        • SYN 단계 [SYN-SENT > SYN-RECEIVED]
          • 클라이언트는 서버에 클라이언트 ISN을 담아 SYN을 보냄
          • ISN은 새로운 TCP 연결의 첫 번째 패킷에 할당된 임의의 시퀀스 번호를 말하며 이는 장치마다 다를 수 있음
        • SYN + ACK 단계[SYN-RECEIVED > ESTABLISHED]
          • 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인 번호로 클라이언트의 ISN +1을 보냄
        • ACK 단계[ESTABLISHED > ESTABLISHED]
          • 클라이언트는 서버의 ISN +1한 값인 승인번호를 담아 ACK를 서버에 보냄

SYN: SYNchronization의 약자, 연결 요청 플래그 ACK: ACKnowledgement의 약자, 응답 플래그 Initial Sequence Numbers의 약어, 초기 네트워크 연결을 할 때 할당된 32비트 고유 시퀀스 번호

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

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

    • 물리 계층: 무선 LAN과 유선 LAN을 통해 0과 1로 이루어진 데이터를 보내는 계층
      • 유선 LAN(IEEE802.3)
        • 유선 LAN을 이루는 이더넷은 IEEE802.3이라는 프로토콜을 따르며 *전이중화 통신을 사용
        • *전이중화 통신(full duplex): 양쪽 장치가 동시에 송수신할 수 있는 방식, 송신로와 수신로로 나눠서 데이터를 주고 받으며 현대의 고속 이더넷은 이 방식을 기반으로 통신
      • 무선 LAN(IEEE802.11)
        • 수신과 송신에 같은 채널을 사용하기 때문에 *반이중화 통신을 사용
        • 반이중화 통신(half duplex): 양쪽 장치는 서로 통신할 수 있지만, 동시에는 통신할 수 없으며 한 번에 한 방향만 통신할 수 있는 방식을 말함. 일반적으로 장치가 신호를 수신하기 시작하면 응답하기 전에 전송이 완료될 때까지 기다려야 함. 또한, 둘 이상의 장치가 동시에 전송하면 충돌이 발생하여 메시지가 손실되거나 왜곡될 수 있기 때문에 충돌 방지 시스템이 필요함
    • 데이터 링크 계층: '이더넷 프레임'을 통해 에러 확인, 흐름 제어, 접근 제어를 담당하는 계층

 

2. 계층 간 데이터 송수신 과정

  • Q) 컴퓨터를 통해 다른 컴퓨터로 데이터를 요청한다면 어떠한 일이 일어날까!? HTTP를 통해 웹 서버에 있는 데이터를 요청한다면 어떻게 될까?!
  • A) 애플리케이션 계층에서 전송 계층으로 보내는 요청(request)값들이 캡슐화 과정을 거쳐 전달되고, 다시 링크 계층을 통해 해당 서버와 통신을 하고, 해당 서버의 링크 계층으로부터 애플리케이션까지 비캡슐화 과정을 거쳐 데이터가 전송됨

  • 캡슐화 과정
    • 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정
    • 애플리케이션 게층의 데이터가 전송 계층으로 전달되면서 '세그먼트' 또는 '데이터그램'화 되며 TCP 헤더가 붙어지게 됨
    • 이후 인터넷 계층으로 가면서 IP 헤더가 붙여지게 되며 '패킷'화가 되고,
    • 이후 링크 계층을 전달되면서 프레임 헤더와 프레임 트레일러가 붙어 '프레임'화됨
  • 비캡슐화 과정
    • 하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정
    • 캡슐화된 데이터를 받게 되면 링크 계층에서부터 타고 올라오면서 프레임화된 데이터는 다시 패킷화를 거쳐 세그먼트, 데이터그램화를 거쳐 메시지화가 되는 과정이 일어남
    • 이후 최종적으로 사용자에게 에플리케이션의 PDU인 메시지로 전달

 

3. 네트워크에서 PDU란

  • PDU
    • 네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위를 PDU(Protocol Data Unit)이라고 함
    • 제어 관련 정보들이 포함된 '헤더', 데이터를 의미하는 '페이로드'로 구성
    • 계층마자 부르는 명칭이 다름
      • 애플리케이션 계층: 메시지
      • 전송계층: 세그머트(TCP), 데이터그램(UDP)
      • 인터넷 계층: 패킷
      • 링크 계층: 프레임(데이터 링크 계층), 비트(물리 계층)
    • PDU 중 아래 계층인 비트로 송수신하는 것이 모든 PDU 중 가장 빠르고 효율성이 높음
    • 하지만 애플리케이션 계층에서는 문자열을 기반으로 송수신하는데, 그 이유는 헤더에 authorization 값 등 다른 값들을 넣는 확장이 쉽기 때문임