[Unit 6] TCP / IP

JeongYeon·2023년 5월 1일
0

[SEB FE]section3

목록 보기
13/19
post-thumbnail

네트워크의 시작

회선교환 방식
발신자와 수신자 사이에 데이터를 전송할 전용선을 미리 할당하고 둘을 연결한다.
상대가 다른상대와 연결중이라면 그 연결이 끊어지고 나서 상대방과 연결할 수 있다.
특정회선이 끊어진 경우에는 처음부터 다시 연결을 성립해야 한다.
➡️ 회선교환 방식의 비효율
: 즉시성이 떨어진다.

패킷교환 방식
패킷이라는 단위로 데이터를 잘게 나누어 전송하는 방식
각 패킷에는 출발지와 목적지 정보가 있고 이에 따라 패킷이 목적지를 향해 가장 효율적인 방식으로 이동한다.➡️ 특정회선이 전용선으로 할당되지 않기 때문에 빠르고 효율적으로 데이터 전송이 가능하다.

IP / IP Packet

IP(인터넷 프로토콜)
지정한 IP 주소(IP Address)에 패킷(Packet)이라는 통신 단위로 데이터를 전달
패킷 : pack + bucket
IP 패킷 : 패킷을 데이터 통신에 적용한 것
전송 데이터를 무사히 전송하기 위해 출발지 IP, 도착지 IP와 같은 정보가 포함되어 있다.

  • 패킷 단위로 전송하면 노드들은 목적지 IP에 도달하기 위해 서로 데이터를 전달한다.
  • 복잡한 인터넷 망 사이에서도 정확한 목적지로 패킷을 전송할 수 있다.
  • 서버에서 무사히 데이터를 전송받는다면 서버도 이에 대한 응답을 돌려줘야 한다.
  • 서버도 IP패킷을 이용해 클라이언트에 응답을 전달한다.

    IP 한계
  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성
    • 중간에 패킷이 사라질 수 있음
    • 패킷의 순서를 보장할 수 없음

TCP / UDP

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

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

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


    TCP 특징(전송 제어 프로토콜 Transmission Control Protocol)
  • 연결지향 - TCP 3 way handshake(가상연결)
    TCP는 장치들 사이 논리적 접속을 성립하기 위해 3 way handshake를 사용한다.

    💡 연결 방식
    • 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보냄
    • 서버는 SYN 요청을 받고 클라이언트에게 요청을 수락한다는 ACK와 SYN이 설정된 패킷을 발송함
    • 클라이언트가 다시 ACK로 응답하기를 기다림
    • 클라이언트가 서버에게 ACK를 보내면 이 이후부터 연결이 되어 데이터 전송이 가능함

  • 데이터 전달 보증
    데이터 전송이 성공적으로 이루어지면 IP패킷의 한계인 비연결성은 보완할 수 있음

  • 순서 보장

    패킷이 순서대로 도착하지 않으면 TCP 세그먼트에 다시 패킷 전송을 요청할 수 있음
    ➡️ IP 패킷의 비신뢰성을 보완할 수 있음

  • 신뢰할 수 있는 프로토콜

UDP 특징 사용자 데이터그램 프로토콜(User Datagram Protocol)
IP에 PORT, 체크섬 필드 정보만 추가된 단순한 프로토콜

  • 하얀 도화지에 비유(기능이 거의 없음)
    • 커스터마이징 가능
  • 비 연결지향 - TCP 3 way handshake ❌
    • TCP보다 신뢰성은 낮지만 3 way handshake 방식을 사용하지 않아 속도가 빠르다.
  • 데이터 전달 보증 ❌
  • 순서 보장 ❌
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
  • 신뢰성보다는 연속성이 중요한 서비스(실시간 스트리밍)에 자주 사용됨

    TCP vs. UDP 업로드중..

출처, 참조 : 코드스테이츠

profile
프론트엔드 개발자 될거야( ⸝⸝•ᴗ•⸝⸝ )੭⁾⁾

0개의 댓글