Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

옥수수, 기록

[네트워크심화] TCP와 UDP/ IP와 IP패킷 본문

카테고리 없음

[네트워크심화] TCP와 UDP/ IP와 IP패킷

ok-soosoo 2023. 1. 4. 23:28

네트워크의 시작

회선교환 방식

출처 : https://mopasblog.tistory.com/11811237

위 사진처럼 회선교환 중간에서 발신자와 수신자를 연결해주는 오퍼레이터가 존재하며 발신자와 수신자 사이에 데이터를 전송할 전용선을 미리 할당하고 둘을 연결한다.

내가 연결하고 싶은 상대가 다른 상대와 연결중이라면 상대방은 이미 다른 상대와의 전용선과 연결되어 있기 때문에 그 연결이 끊어지고 나서야 상대방과 연결할 수 있다.

연락하려는 사람들끼리 바로 연결이 불가능하고 오퍼레이터를 통해야 했다.

패킷교환 방식

패킷이라는 단위로 데이터를 잘게 나누어 전송하는 방식이다.(마치 소포를 보내듯)

각 패킷에는 출발지와 목적지 정보(IP주소)가 있고 이에 따라 패킷이 목적지를 향해 가장 효율적인 방식으로 이동할 수 있다. 이를 이용하면 특정 회선이 전용선으로 할당되지 않기 때문에 빠르고 효율적으로 데이터를 전송할 수 있다.

IP와 IP Packet

복잡한 인터넷 망 속 수많은 노드들을 지나 클라이언트와 서버가 통신하기 위해서는 규칙이 필요하다.

그래서 IP주소를 컴퓨터에 부여하여 이를 이용해 통신하는데 IP는 지정한 IP 주소(IP Address)에 패킷(Packet)이라는 통신 단위로 데이터 전달을 한다.

 

패킷 단위로 전송을 하면 노드들은 목적지 IP에 도달하기 위해 서로 데이터를 전달한다.

서버에서 무사히 데이터를 전송받는다면 서버도 이에 대한 응답을 돌려주어야 한다.

서버 역시 IP 패킷을 이용해 클라이언트에 응답을 전달한다.

 

IP와 IP Packet - IP 한계

비연결성

  • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
    • 클라이언트는 서버의 상태를 파악할 방법이 없기 때문

비신뢰성

  • 중간에 패킷이 사라질 수 있음
    • 클라이언트는 이를 파악할 방법이 없음!
  • 패킷의 순서를 보장할 수 없음

    • 전달 데이터의 용량이 크면 패킷 단위로 나눠 데이터를 전달
    • 이때 패킷들은 중간에 서로 다른 노드를 통해 전달될 수 있다.

TCP vs UDP

네트워크 계층 구조를 통해 IP 패킷의 한계를 보완할 수 있다.

OSI 7계층과 TCP/IP 4계층

OSI 7계층과 TCP/IP 4계층

네트워크 프로토콜 계층은 이와 같이 OSI 7계층과 TCP/IP 4 계층으로 나눌 수 있다.

IP프로토콜보다 더 높은 계층에 TCP 프로토콜이 존재하기 때문에 IP 프로토콜의 한계를 보완할 수 있다.

🚨: ‘TCP/IP 4 계층’은 ‘OSI 7 계층’보다 먼저 개발되었으며 TCP/IP 프로토콜의 계층은 OSI 모델의 계층과 정확하게 일치하지 않는다. 실제 네트워크 표준은 ‘TCP/IP 4 계층’에 가깝다.

채팅프로그램에서 메세지를 보낼 때 일어나는 일

  1. HTTP 메세지가 생성되면 Socket을 통해 전달
    1. 네트워크 소켓(Socket) : 프로그램이 네트워크에서 데이터를 송수신할 수 있도록 네트워크 환경에 연결할 수 있게 만들어진 연결부
  2. IP 패킷을 생성하기 전 TCP 세그먼트 생성
  3. 생성된 TCP/IP 패킷은 LAN카드와 같은 물리적 계층을 지나기 위해 이더넷 프레임 워크에 포함되어 서버로 전송

TCP/IP패킷?

 

TCP 세그먼트에는 IP패킷의 출발지 IP와 목적지 IP 정보를 보완할 수 있는 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증 정보 등을 포함한다.

 

TCP의 특징

  • 연결 지향 - TCP 3 way handshake(가상 연결)
    • 클라이언트가 서버에 접속을 요청하는 SYN 패킷을 보냄
    • 서버는 SYN 요청을 받고 클라이언트에게 요청을 수락한다는 ACK와 SYN이 설정된 패킷을 발송하고 클라이언트가 다시 ACK로 응답하기를 기다림
    • 클라이언트가 서버에게 ACK를 보내면 이후부터 연결이 성립, 데이터를 전송할 수 있음
    • 만약 서버가 꺼져있다면 클라이언트가 SYN을 보내고 서버에서 응답이 없기 때문에 데이터를 보내지 않음
    • 현재에는 최적화가 이루어져 3번 ACK를 보낼 때 데이터를 함께 보내기도 함
      • SYN은 Synchronize, ACK는 Acknowledgment의 약자
  • 데이터 전달 보증
    • 데이터 전송이 성공적으로 이루어지면 응답을 돌려주기 때문에 IP패킷의 비 연결성을 보완할 수 있음
  • 순서 보장
    • 패킷이 순서대로 도착하지 않는다면 TCP 세그먼트에 있는 정보를 토대로 다시 패킷 전송 요청 가능
  • 신뢰할 수 있는 프로토콜
    • UDP < TCP

UDP의 특징

IP에 PORT, 체크섬 필드 정보만 추가된 단순한 프로토콜이다.

*체크섬(checksum)은 중복 검사의 한 형태로, 오류 정정을 통해, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법.

  • 하얀 도화지에 비유(기능이 거의 없음)
  • 비 연결지향 - TCP 3 way handshake X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 데이터 전달 및 순서가 보장되지 않지만 단순하고 빠름
  • 신뢰성보다는 연속성이 중요한 서비스(실시간 스트리밍)에 자주 사용됨.
TCP UDP
연결지향형 프로토콜 비 연결지향형 프로토콜
전송 순서 보장 전송 순서 보장 X
데이터 수신 여부 확인 데이터 수신 여부 확인 X
신뢰성 ↑ 속도 ↓ 신뢰성 ↓ 속도 ↑
Comments