네트워크 2. TCP와 UDP

최창우·2022년 8월 8일
0

네트워크

목록 보기
2/4
post-thumbnail

🙌 이전 포스팅 참고

📕 IP의 문제점

📖 IP 의 한계

  1. 비연결성

    • 패킷을 받을 대상이 없거나 서비스 불능이여도 패킷전송
  2. 비신뢰성

    • 중간에 패킷이 사라지면?
    • 패킷이 순서대로 안오면? ("world Hello")
  3. 프로그램 구분 불가

    • 같은 IP를 사용하는 서버에서 통신하는 Application이 여러개면?

📕 TCP 와 UDP의 등장

📖 IP stack 4계층

<애플리케이션>
1. 애플리케이션 계층 : HTTP, FTP

 -- SOCKET 라이브러리 존재 -- 
<OS>
2. 전송 계층 : TCP, UDP
3. 인터넷 계층 : IP
<네트워크 인터페이스>
4. 네트워크 인터페이스 계층 (LAN드라이버, LAN장비)

📖 TCP 이해하기

위 계층을 토대로 메시지전달과정을 살펴보자

1. 채팅프로그램으로 Hello world 를 작성
2. socker library 를 통해 os에 넘김
3. 메시지에 TCP 정보를 씌움
4. 메시지+TCP정보에 IP 정보를 씌움
5. LAN 카드를 통해 나갈때 Ethernet Frame이 포함돼서 전송
	- Ethernet Frame는 랜카드에 등록된 물리적인 정보들이 포함되어있다. 

4번에서 완성된 패킷은 다음과 같은 구성요소를 지닌다.
1. IP 패킷에 의해 출발지 IP, 목적지IP, 기타 정보
2. TCP 패킷에 의해 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증정보

📖 TCP 특징

  1. 연결지향 - TCP 3 way handshake (가상연결)
    • 클라이언트에서 서버로 SYN 신호 전송
    • 서버에서 클라이언트로 ACK 신호 및 SYN 신호 전송
    • 클라이언트에서 서버로 ACK 신호 전송
      SYN : 접속요청 / ACK : 요청수락
    • 참고로 세번째 Shake에 ACK와 함께 데이터도 전송가능하다.
  2. 데이터 전달 보증
  3. 순서 보장

신뢰할수 있는 프로토콜로써 현재는 대부분 TCP를 사용한다.

📖 UDP 이해하기

UDP 는 하얀 도화지와 같다. 즉 기능이 거의없음

연결지향불가 / 데이터전달보증 불가 / 순서보장 불가
IP와 거의 동일하며 PORT와 체크섬정도만 추가되었다.

하지만, TCP는 너무 느린데다 정형화된 규칙이 있어서 추가적인 작업이 불가하여, UDP에 원하는 기능을 추가하는 과정이 가능하다. (요즘에 각광받음)


📚Reference

본 포스팅은 인프런-김영한 님의 모든 개발자를 위한 HTTP 웹 기본 지식 내용을 토대로 작성하였습니다. 진짜 강의도 너무 좋고 강의 타임도 짧은데다, 저렴하니 들어보면 좋을거같습니다.

profile
유능한 개발자가 되고 싶은 헬린이

0개의 댓글