네트워크_TCP/UDP

Eugenius1st·2022년 9월 9일
0

네트워크

목록 보기
2/12
post-thumbnail

네트워크_TCP/UDP

IP에는 비연결성,비신뢰성 한계들이 존재한다.

네트워크 계층구조를 통해 이와 같은 한계를 보완할 수 있다.

네트워크 프로토콜 계층은 다음과 같이 OSI 7계층과 TCP/IP 4계층으로 나눌 수 있다. IP프로토콜 보다 더 높은 계층에 TCP 프로토콜이 존재하기 때문에 앞서 다룬 IP프로토콜의 한계를 보완할 수 있다.

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

예시

채팅 프로그램에서 메세지를 보낼 때 어떤 일이 일어나는 지 자세히 알아보자.

먼저 HTTP 메세지가 생성되면 Socket을 통해 전달된다.
프로그램이 네트워크에서 데이터를 송수신할 수 있도록, "네트워크 환경에 연결할 수 있게 만들어진 연결부"가 바로 네트워크 소켓(Socket)이다.

그리고 IP패킷을 생성하기 전 TCP 세그먼트를 생성한다.
이렇게 생성된 TCP/IP패킷은 LAN카드와 같은 물리적 계층을 지나기 위해 이더넷 프레임워크에 포함되어 서버로 전송된다.

TCP/IP 패킷에 대해 자세히 살펴보자.

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

TCP 특징

전송제어 프로토콜(Transmission Control Protocol)

  • 연결지향- TCP 3way handshake(가상연결)
  • 데이터 전달 보증
  • 순서 보장
  • 신뢰할 수 있는 프로토콜

TCP는 같은 계층에 속한 UDP에 비해 상대적으로 신뢰할 수 있는 프로토콜이다.

TCP는 장치들 사이에 논리적인 접속을 성립하기 위하여 3way handshake를 사용하는 연결지향형 프로토콜 이다.

연결방식은 위와 같다.
1. 먼저 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보낸다.
2. 서버는 SYN 요청을 받고 클라이언트에게 요청을 수락한다는 ACK와 SYN가 설정된 패킷을 발송하고 클라이언트가 다시 ACK로 응답하기를 기다린다.
3. 클라이언트가 서버에게 ACK를 보내면 이 이후로 연결이 성립되면 데이터를 전송할 수 있다.
4. 만약 서버가 꺼져있다면 클라이언트가 SYN을 보내고 서버에 응답이 없기 때문에 데이터를 보내지 않는다.
5. 현재에는 최적화가 이루어져 3번 ACK를 보낼 때 데이터를 함께 보내기도 한다.
※SYN은 Synchronize, ACK는 Acknowledgment의 약자※

TCP와 UDP 차이

profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글