[정보통신기술 기초]TCP/IP Layer, 연결지향, 3 way handshake

2021. 7. 4. 01:14정보통신기술

728x90
반응형

1. TCP/IP 란
지역네트워크(LAN) 혹은 광역네트워크(WAN)에서 원할한 통신을 가능하도록 하기 위한 통신규약(Protocol) 으로 정의할 수 있다.
WWW, EMAIL, TELNET, FTP등 대부분이 TCP/IP 기반에서 만들어져있다.

TCP/IP TCP IP 2개의 프로토콜로 이루어져 있는데, 통상 IP 프로토콜 위에 TCP 프로토콜이 놓이게 되므로 TCP/IP 라고 부르게 되었다.

IP - node(단말기)node 간의 데이터 패킷을 전송하기 위해서는 각 node 에 부여하는 논리적 주소를 IP Address라고 부르고 이를 설정하는 프로토콜이 Internet Protocol 이다.
TCP - 서버와 클라이언트간에 데이터를 신뢰성있게 전달하기 위해 만들어진 프로토콜이다. 데이터는 네트워크선로를 통해 전달되는 과정에서 손실되거나 순서가 뒤바뀌어서 전달될수 있는데, TCP는 손실을 검색해내서, 이를 교정하고 순서를 재조합할수 있도록 해준다. Transmission Control Protocol 의 줄임말이다. 데이터를 전송하기 전에 데이터전송을 위한 연결을 만드는 연결지향 프로토콜이다.

2. LAN 과 WAN 그리고 TCP/IP
LAN Local Area Network, 근거리 통신망
WAN Wide Area Network , 원거리 통신망


HOST HOST 그리고 HOST Router에서 패킷이 전달되는데 하나의 고정된 전달 경로만을 이용하지 않고 임의의 경로를 사용하기 때문으로 각경로를 구성하는 회선의 품질이 다르게되면 먼저 보내어진 패킷이라도 나중에 보내어진 패킷보다 더 느리게 도착하는 문제가 생길 수 있다.
TCP/IP는 이러한 연결된 상태에서 서로 올바른 통신을 하도록 도와준다. 정확히 말하자면 TCP가 올바른 통신을 하도록 도와주는 기능을 가지고 있으며, IP는 이러한 기능없이 오로지 TCP 패킷을 전송하는 일만을 한다.
올바른 통신을 위해 TCP가 가지고 있는 기능
패킷이 빠졌을경우, 재전송을 요청하는 기능
패킷에 일련번호를 줌으로써, 패킷의 순서를 재조합하는 기능
3. UDP와 TCP
위에서 데이터를 전송하기 위한 TCP 프로토콜에 대해서 설명했는데, TCP외에 UDP(:12) 라는 프로토콜 존재한다. 데이터를 전송한다는 점에서 TCP, UDP 모두 비슷하지만 특성에 있어서 약간의 차이가 있다. UDP User Datagram Protocol 의 줄임말이다.
TCP - 연결지향, 자체적으로 오류를 처리, 순서가 뒤바뀐 메시지를 교정시켜주는 기능
연결지향 : 데이터를 전송하는 측과 데이터를 전송받는 측에서 전용의 데이터 전송 선로(Session)을 만든다는 의미. 데이터의 신뢰도가 중요하다고 판단될때 주로 사용된다.
UDP - 비연결지향, 오류처리순서 재조합 기능을 가지고 있지않다.
실시간 멀티미디어 정보를 처리하기위해서 주로 사용한다.

4. 어떻게 TCP/IP 를 이용해서 컴퓨터간 데이터 통신이 가능한가 ?
지금까지 TCP/IP 그리고 UDP에 대한 개괄적인 내용을 살펴봤는데, 해결되지 않은 문제가 있다. 그렇다면, 각 컴퓨터간을 연결해주는 이더넷 카드를 통해서 어떻게 TCP/IP 메시지가 전달되는 것일까 ?
이것을 이해하기 위해서는 OSI7에 대한 이해가 필요하다. OSI 는 각종 시스템간의 연결을 위하여 ISO 에서 제안한 모델로써, OSI(Open System Interconnection Reference Model)에서 유추할수 있듯이, 시스템에 상관없이 서로의 시스템이 연결될수 있도록 만들어주는 모델이다.
OSI 는 아래와 같이 7개의 계층으로 되어 있다.


OSI 계층별로 나눔으로써, 각 계층에서 필요한 부분만을 개발자들이 신경쓰게 되고 통신서비스 개발시간을 줄일수 있도록 도와준다.

5. OSI 7 계층과 TCP/IP 4계층
TCP/IP 계층은 OSI 7계층을 더 단순화 시켜서 4개의 계층(Layer)로 만들어서 사용한다.


Application Layer
이 계층은 네트워크를 사용하는 응용프로그램(FTP, Telnet, SMTP) 등으로 이루어진다.
Transport Layer
도착을 원하는 시스템까지 데이터를 전송하기 위한 일을 하는 계층. 각각의 시스템을 연결하고, TCP 프로토콜을 이용하여 데이터를 전송한다.
Internet Layer
데이터를 정의하고 데이터의 경로를 배정하는일(라우팅)을 담당한다. 데이터를 정확히 라우팅 하기 위해서 IP프로토콜을 사용한다.
Physical Layer
물리적 계층 즉 이더넷 카드와 같은 하드웨어를 말한다.
6. TCP/IP 4계층에 의한 데이터 전송
그럼 실제로 TCP/IP 4계층을 이용해서 어떻게 데이터가 전송되는지 알아보도록 하자. 아래는 이러한 계층 통신의 가장 단적인 모습을 보여주는 그림인데, 현재 가장 많이 사용하는 인터넷 서비스중 하나인 WWW 을 예를 들어 그림을 그려 보았다.


WWW (World Wide Web)HTTP (HyperText Transfor Protocol)프로토콜을 이용한다.

위의 그림을 설명해 보자면, 일단 사용자는 브라우저를 사용하여서 URL입력을 통해서 웹페이지를 요청한다.
사용자의 요청은 TCP 패킷으로 만들어지게 된다.
이것은 원하는 주소로 이동할수 있도록 하기 위해서 IP 패킷으로 다시 만들어 지고(IP 패킷에는 자신의 주소와, 도착해야될 상대방의 주소정보가 들어있다) 이것은 이더넷 카드로 보내어져서 Internet 으로 나가게 된다.
Internet 상에서는 원하는 주소로 TCP/IP 패킷을 보내기 위한 여러가지 장치들이 존재하는데(라우터, 토큰링 같은), 이들 장치를 통해서, 해당 URL의 이더넷카드로 TCP/IP 패킷이 전달되게 된다. 그럼 이더넷 카드는 TCP/IP 패킷을 바로 윗 계층(Internet Layer)으로 보내는데, 여기에서는 IP 패킷을 분석해서, 이 패킷이 어디에서 왔으며, 그 도착지가 어디인지를 판단하게 된다.
그리하여 목적지가 자신이면 이것을 다시 Transport Layer 로 보내고, TCP 프로토콜을 사용하여, 메시지가 누락된게 있으면 다시 요청하고, 순서를 재조합하는등 통신 메시지를 검사해서 이것을 다시 Application Layer 에게 보낸다
Application Layer 에서는 요청한 웹페이지를 읽어들여서, Transport 계층으로 보내게 된다. 웹페이지를 브라우저까지 전송하는 과정은 위의 정반대의 과정을 순차적으로 거치게 된다.
최종적으로 웹브라우저는 웹페이지를 받아서(text) 역시 HTTP 프로토콜에 준하여, 렌더링 작업을 거친후 화면에 뿌려주게 된다.
각각의 계층은 대응되는 상대편의 계층에 대해서만 상관한다.
7. 연결지향 이란 무엇인가 ?
TCP : 연결지향이란 무엇을 의미하는것일까?
데이터가 전송되기전에, Browser Server 간의 연결을 성립하는 과정이 데이터를 전송하는 과정전에 이루어지게 된다. 전화할때 상대편을 먼저 확인하는 과정과 동일한 과정이다.


즉 데이터가 전송되기 전에, 먼저 Browser Server 에 서버 상태 확인메시지를 보내고, Server 는 다시 Browser(:12) 에게 "서버 준비되어 있으니, 데이터 보내시요" 라는 메시지를 보내고 Browser 는 다시 서버에게 ", 그럼 지금부터 데이터를 보내겠습니다" 라고 서로 의 존재를 확인하는 절차를 수행한후, 정식 데이터를 교환하기 위한 통신선로를 개설하게 된다. 통신선로를 하나 만들기 위해서는 3번의 데이터 전송이 일어나게 되므로, 이것을 three way handshake이라고 한다. 위 그림은 three way handshake 의 과정을 보여주고 있다.
이렇게 연결이 이루어지면 모든 정식데이터는 연결된 통신선로를 통해서 교환되게 되며, 이러한 이유로 TCP"연결 지향" 프로토콜이라고 부르는 것이다. UDP 는 이러한 과정이 없이 단순히 데이터만을 전송함으로 "데이터 그램" 프로토콜이라고 부른다.





[  모든 내용은 https://www.joinc.co.kr/w/Site/Network_Programing/Documents/IntroTCPIP 의 내용이고,
이해하기 쉽게 요약한 문서입니다. ]

728x90
반응형