[네트워크 심화] TCP/IP | IP/IP Packet, TCP/UDP

Eunji Lee·2023년 1월 7일
0

[TIL] Front-end

목록 보기
29/36
post-thumbnail

회선 교환 방식 vs 패킷 교환 방식

회선 교환 방식

  • 발신자와 수신자 사이에 데이터를 전송할 전용선을 미리 할당하고 둘을 연결하는 방식
  • 내가 연결하고 싶은 상대가 다른 상대와 연결중이라면, 해당 연결이 끊어지고 나서야 상대방과 연결할 수 있음
  • 특정 회선이 끊어지는 경우에는 처음부터 다시 연결해야함

패킷교환 방식

  • 소포를 보내듯 출발지와 목적지 정보를 가진 단위(패킷)로 데이터를 잘게 나누어 전송하는 방식
  • 각 패킷에는 출발지와 목적지 정보가 있고 이에 따라 패킷이 목적지를 향해 가장 효율적인 방식으로 이동
    • 특정 회선이 전용선으로 할당되지 않기 때문에 빠르고 효율적으로 데이터를 전송 가능
  • 인터넷 프로토콜(IP)은 출발지와 목적지의 정보를 IP 주소라는 특정한 숫자값으로 표기하고 패킷단위로 데이터를 전송

(참고) 최초의 네트워크

  • 인터넷 프로토콜, 즉 IP 기반의 네트워크는 미 국방성에서 1969년 진행했던 아르파넷(ARPANET) 프로젝트에서 시작됨
  • 이 프로젝트는 당시 냉전시대에서 핵전쟁을 대비하기 위한 통신망 구축을 위해 추진됨



IP/IP Packet

  • IP: 지정한 IP 주소(IP Address)에 패킷(Packet)이라는 통신 단위로 데이터 전달
  • IP 패킷: 데이터를 전송하기 위한 통신 단위. 전송 데이터를 무사히 전송하기 위한 출발지 IP, 목적지 IP와 같은 정보가 포함
  • 동작 원리
1. 클라이언트에서 패킷 단위로 데이터 전송
2. 각각의 노드(서버 컴퓨터)가 데이터 전달
3. 목적지 IP(server)에 도착
4. 서버가 IP 패킷을 이용해 클라이언트에 응답 전달
  • 단점
    • 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
    • 비신뢰성: 중간에 패킷이 사라지거나 패킷의 순서가 달라질 수 있음'



TCP/UDP

TCP

  • TCP: 전송 제어 프로토콜(Transmission Control Protocol)
    TCP 프로토콜은 IP 프로토콜 보다 더 높은 계층에 위치하며 IP 프로토콜의 한계를 보완함

작동 방식 (ex. 채팅 메시지 전송)

1. HTTP 메시지 생성
2. 네트워크에서 프로그램이 데이터를 송수신할 수 있도록 네트워크 환경에 연결할 수 있게 만들어진 연결부인 Socket을 통해 전달
3. HTTP 메세지 데이터를 포함하여 TCP 세그먼트 생성.
-> 이 때 TCP 세그먼트에는 IP 패킷의 출발지 IP와 목적지 IP 정보를 보완할 수 있는 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등이 포함됨
4. TCP 데이터를 포함하여 IP 패킷 생성
5. 위 과정을 통해 생성된 TCP/IP 패킷은 LAN 카드와 같은 물리적 계층을 지나기 위해 이더넷 프레임 워크에 포함되어 서버로 전송

특징

TCP 3 way handshake

  • 장치들 사이에 논리적인 접속을 성립하기 위하여 3 way handshake를 사용
  • 작동 원리

    (SYN === Synchronize, ACK === Acknowledgment)
1. 클라이언트가 서버에 접속을 요청하는 SYN 패킷을 보냄
2. 서버는 SYN요청을 받고 클라이언트에게 요청을 수락한다는 ACK 와 SYN가 설정된 패킷을 발송하고 클라이언트가 다시 ACK으로 응답하기를 기다림
3. 클라이언트가 서버에게 ACK을 보내면 이 이후로부터 연결이 성립되며 데이터 전송 가능
4. 만약 서버가 꺼져있다면 클라이언트가 SYN을 보내고 서버에서 응답이 없기 때문에 데이터를 보내지 않음
  • 현재는 최적화가 이루어져 3번 ACK을 보낼때 데이터를 함께 보내는 경우도 있음

데이터 전달 보증

  • 데이터 전송이 성공적으로 이루어진다면 이에 대한 응답을 돌려주기 때문에 IP 패킷의 한계인 비연결성을 보완

데이터 순서 보장

  • 만약 패킷이 순서대로 도착하지 않는다면 TCP 세그먼트에 있는 정보를 토대로 다시 패킷 전송을 요청
    → IP 패킷의 한계인 비신뢰성(순서를 보장하지 않음)을 보완

UDP

  • UDP: 사용자 데이터그램 프로토콜(User Datagram Protocol)
    • IP에 PORT, 체크섬 필드 정보만 추가된 단순한 프로토콜
      • cf. 체크섬(checksum): 중복 검사의 한 형태로, 오류 정정을 통해, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법
    • 앞서 TCP 특징과 비교해 보면 신뢰성은 낮지만 3 way handshake 방식을 사용하지 않기 때문에 TCP와 비교해 빠른 속도를 보장
    • HTTP3는 UDP를 사용하며 이미 여러 기능이 구현된 TCP보다는 하얀 도화지처럼 커스터마이징이 가능

TCP와 UDP 비교

TCPUDP
연결 지향형 - TCP 3 Way handshake(가상 연결)OX
데이터 수신여부 확인OX
전송 순서 보장OX
장점신뢰할 수 있는 프로토콜, 이미 여러 기능이 구현됨단순하고 빠름→ 신뢰성보다는 연속성이 중요한 서비스(ex. 스트리밍 서비스)에서 자주 사용
단점3 way handshake 방식 때문에 비교적 속도가 느림신뢰성이 낮음, 기능이 거의 없음(단, 커스터마이징 가능하다는 장점)

0개의 댓글