[네트워크] TCP/IP, 네트워크 계층모델

Hyun Jin·2023년 3월 6일
0

1. TCP/IP

  • 개념학습: 네트워크의 탄생 배경을 살펴보고 패킷교환 방식을 이용한 IP 통신과 이를 보안하기 위한 TCP/UDP에 대해 학습합니다.

학습 목표

  • 패킷교환 방식의 이점에 대해 이해한다.
  • IP의 비순서성, 비신뢰성에 대해 이해한다.
  • TCP의 3 way handshake 및 그와 비교되는 UDP에 대해 이해한다.

1-1. 네트워크의 시작

즉시성이 떨어지고 비효율 적이던 회선교환방식(전화 교환원이 하던 방식) -> 패킷교환 방식으로 발전했다.

  • 패킷 교환 방식 : 데이터를 패킷(Packet)이라는 작은 단위로 잘게 쪼개서 전송하는 방식.
    각 패킷에는 데이터, 출발지, 목적지 정보(IP 주소)가 있으며, 이에 따라 패킷이 목적지로 효율적으로 이동 가능함. 특정 회선이 전용선으로 할당되지 않아서 빠르고 정확하게 데이터 전송 가능.
    데이터를 전송하는 동안에만 네트워크 자원을 사용한다.
    정보 전달의 단위인 패킷은 여러 통신 지점(Node)을 연결하는 데이터 연결 상의 모든 노드들 사이에 개별적으로 경로가 제어된다. 이 방식은 통신 기간 동안 독점적인 사용을 위해 두 통신 노드 사이를 연결하는 회선 교환 방식과는 달리 짤막한 데이터 트래픽에 적합하다.

  • 패킷 교환방식의 장점

    • 네트워크 자원을 패킷 단위로 나누어 시간을 공유하므로 회선 효율성이 높다.
    • 트래픽이 많으면 회선 교환망은 네트워크 부하가 감소할 때까지 요청을 차단하나, 패킷 교환망은 Store-and-Forward 방식을 사용하기 때문에 데이터가 들어오는 속도와 나가는 속도를 맞출 필요 없이 각 스테이션에 맞도록 속도를 조절할 수 있다. 이로써 전송 지연이 줄어들고 통신 안정성이 늘어난다.
  • 패킷의 구성
    패킷은 전송하고자 하는 데이터의 한 블록(페이로드Payload) 과 주소지 정보(발신지 주소, 목적지 주소), 관리정보(헤더Header, IPv6에서와 같이 망이 패킷을 목적지까지 전달하는데 필요한) 로 구성된다. 각각의 패킷은 일정한 헤더가 필요하며 패킷은 적절한 크기로 나뉜다.

🔗 참고 사이트
코드스테이츠 유어클래스
Packet (MDN)
패킷 교환(Wikipedia)

1-2. IP/IP Packet

클라이언트-서버 통신 방식

  • 컴퓨터에 IP(인터넷 프로토콜) 주소를 부여하여 통신하며, IP는 지정한 IP 주소(IP Address)에 패킷(Packet)이라는 통신 단위로 데이터를 전달함

  • 클라이언트 패킷 전달 :
    클라이언트 -> 패킷 단위로 데이터 전송 -> 노드들이 목적지 IP 에 도달하기 위해 서로 데이터를 전달함.

  • 서버 패킷 전달 :
    서버 -> 동일하게 IP 패킷 단위로 데이터 전송 -> 노드들이 발신지 IP 로 데이터 전달함.

IP 의 한계

1. 비연결성
패킷을 받을 대상이 없거나 서비스 불가능 상태여도, 클라이언트에서 서버의 상황을 파악할 수 없어 패킷을 그대로 전송함
데이터의 목적지에 실제로 도착할 수 있는지 알 수 없음.
2-1. 비신뢰성 - 패킷이 소실될 수 있음
중간에 있는 서버에 장애가 생겨 데이터가 소실되어도 클라이언트에서 파악 불가능함.
2-2. 비신뢰성 - 패킷이 순서대로 도착하지 않을 수 있음
전달할 데이터의 용량이 클 경우 패킷단위로 작게 나눠서 데이터를 전달하게 되는데, 이때 패킷들은 중간에 서로 다른 노드들을 거쳐 전달될 수 있음. 이렇게 되면 클라이언트가 의도하지 않은 순서대로 서버에 패킷이 도착할 수 있음.

1-3. TCP/UDP Packet

TCP(Transmission Control Protocol)

  • TCP (전송 제어 프로토콜) : 두 개의 호스트를 연결하고 데이터 스트림을 교환하게 해주는 중요한 네트워크 프로토콜
    데이터와 패킷이 보내진 순서대로 전달하는 것을 보장해줌. TCP의 역할은 에러가 없이 패킷이 신뢰할 수 있게 전달 되었는지 보증해 주는 것이다.
    동시 제어가 가능함. 이는 초기 요청이 작게 시작해도 컴퓨터들과 서버들의 대역폭의 깊이가 증가해도 네트워크가 지원할 수 있다는 것을 뜻한다.

    MDN - TCP
    TCP - Wikipedia

1-4. 네트워크 프로토콜 계층 - OSI 7계층과 TCP/IP 4 계층

실제 네트워크 표준은 업계표준을 따르는 TCP/IP 4 계층에 가까움.

채팅 프로그램에서 메시지를 보낼 때 일어나는 일(TCP/IP 4 계층)

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

TCP 특징

1. TCP 3 way handshake
TCP는 장치들 사이에 논리적인 접속을 성립하기 위하여 3 way handshake를 사용하는 연결지향형 프로토콜.
클라이언트가 서버로 접속해도됨? 하고 SYN 패킷 보냄
-> 서버가 SYN 패킷 받고 접속해도 됨! 하는 ACK와 SYN이 설정된 패킷을 보냄
-> 클라이언트가 서버에게 다시 그럼 접속할게! 하는 ACK 를 보내면 이후로 연결이 성립되며 데이터 전송 가능.
만약 서버가 꺼져있다면 클라이언트가 SYN을 보내고 서버에서 응답이 없기 때문에 데이터를 보내지 않음.
현재에는 최적화가 이루어져 3번 ACK을 보낼때 데이터를 함께 보내기도 함.

2. 데이터 전달 보증
TCP는 데이터 전송이 성공적으로 이루어진다면 이에 대한 응답을 돌려주기 때문에 IP 패킷의 한계인 비연결성을 보완할 수 있음.

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

UDP 의 특징

  • UDP(User Datagram Protocol) : IP에 PORT, 체크섬 필드 정보만 추가된 단순한 프로토콜
    TCP의 특징과 비교해 보면 신뢰성은 낮지만 3 way handshake 방식을 사용하지 않기 때문에 TCP와 비교해 빠른 속도를 보장함
    커스터마이징이 가능함

TCP 와 UDP 의 차이

UDP 는 신뢰성이 적지만 속도가 빨라서 유튜브 등에 많이 쓰임.



profile
새싹 프론트엔드 개발자

0개의 댓글