Part 2. 전송계층 TCP/UDP(인터넷 네트워크)

김수환·2023년 3월 16일
0
post-thumbnail

<오늘의 주제>
Q 1 : “전송계층 TCP / UDP”
Q 2 : “인터넷 프로토콜 스택의 4계층이란?”
Q 3 : “TCP에는 어떤 특징이 있을까?”


용어정리 : 전송계층 TCP/UDP

서울에 사는 나와 미국에 사는 친구와 인터넷 통신을 하기 위해서 인터넷 프로토콜(IP)가 필요하다. 내가 보내고 싶은 데이터 메시지와 IP의 출발지인 서울과 목적지인 미국의 정보를 IP 패킷에 담아 보낸다. 인터넷 프로토콜(IP)의 한계는 존재한다. 미국에 사는 친구의 PC가 꺼져 있을 경우 비연결성으로 데이터 메시지를 받을 수 없다. 이게 첫 번째 한계다. 다음은 비신뢰성이다. 중간에 IP 패킷이 사라지거나 데이터 메시지를 순서대로 전송되지 않는 경우를 뜻한다.

마지막은 프로그램의 구분인데, 미국에 사는 친구의 PC 전원이 켜짐으로 비연결성을 해결됐고, 중간에 IP 패킷이 사라지지 않고 순서대로 전송돼 비연결성에도 문제가 없다고 치자. 그 친구가 게임을 하고, 카카오톡 메신저를 켜두고, 음악을 듣는 등 3가지의 일을 하고 있다면 IP 패킷은 3개의 작업 중 어떤 작업에 전송되어야 할까? 이게 바로 프로그램의 구분이다.

전송계층 TCP를 이용해 ‘비연결성’과 ‘비신뢰성’을 먼저 해결할 수 있다. 하지만 프로그램의 구분에 관한 문제는 다음 스탭인 PORT에서 다뤄볼 예정이다. TCP를 통해 비연결성과 비신뢰성 문제를 어떻게 해결할 수 있을까?


Q 1 : 인터넷 프로토콜 스택의 4계층이란?



인터넷 프로토콜 스택의 4계층 중에서 TCP/UDP는 전송계층에 해당된다. 인터넷 프로토콜 스택의 4계층이란? 애플리케이션 계층(HTTP, FTP), 전송계층(TCP/UDP), 인터넷 계층(IP), 네트워크 인터페이스 계층.

전송계층 TCP의 특징은 첫 번째, 연결지향적인 TCP 3 Way Handshake를 통해 가상 연결을 한다. 두 번째, 데이터 전달 보증을 한다. 세 번째, 순서 보장한다. 네 번째, 신뢰할 수 있는 프로토콜이다. 현재 대부분 TCP를 사용한다는 점을 잊지 말자.



Q 2 : “TCP에는 어떤 특징이 있을까?”



서울에 있는 내가 미국에 사는 친구에게 데이터를 전송했을 때 친구의 PC가 꺼진다면 어떻게 될까?라는 질문을 계속해서 했었다. IP의 한계인데, 이걸 <그림3>처럼 전송계층 TCP에서 해결할 수 있다. 바로 비연결성을 3 Way HandShake로 논리적 연결을 할 수 있다.

TCP 3Way-HandShake
첫 번째, SYN을 통해 접속 요청(가상연결)
두 번째, SYN+ACK으로 요청을 수락(데이터 전달 보증)
세 번째, ACK + 데이터를 전송(순서 보장)

다음은 중간에 IP 패킷이 사라지거나 데이터 메시지를 순서대로 전송되지 않는 비신뢰성 문제를 <그림5>처럼 해결할 수 있다. 패킷 1다음에 패킷 3이 들어왔다면 미국에 사는 친구의 서버가 다시 패킷 2부터 요청하게 된다. 데이터가 잘 전달 됐는지 데이터 보증을 함으로서 비신뢰성 문제 해결로 볼 수 있다.



참고자료


김영한 인프런 강의 : 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의


profile
프리랜서 글쓰기 강사에서 백엔드 주니어 개발자로 👊🏻

0개의 댓글