In Dust

TCP/IP 의 이해

TCP/IP

현재 수많은 프로그램들이 인터넷으로 통신하는데 있어 가장 기본이 되는 프로토콜입니다.

ARPANET이 개발된 이후 현재의 인터넷으로 발전해나가는 과정에서 대부분의 테이터 통신이 TCP와 IP기반으로 이루어졌기 때문에 다양한 프로토콜이 개발된 현 시점에도 사실상 인터넷 프로토콜을 대표하는 용어로 사용되고 있습니다.

그렇기 때문에 프로그램 설명서에 “TCP/IP 지원”이라고 써있으면 인터넷에 연결하여 쓰는 기능이 포함되어 있다는 설명입니다.

TCP와 IP는 하나로 표현하고 있지만  각각 별개입니다.

네트워크의 경우 계층이 정의되어 있고 각 계층마다 하는 역할과 책임지는 영역이 나뉘어져 있기 때문에 묶어서 표현한다는 것 뿐이지 역할에는 많은 차이가 있습니다.

 

 

TCP(Transmission Control Protocol)

다른 컴퓨터와 데이터 통신을 하기 위한 통신 규약입니다.

세계 통신표준으로 개발된 ‘OSI 7’ 모형에서 4번째 계층인 전송 계층에서 사용하는 규약입니다.

hbdya001

TCP/IP와 OSI 7

hbdya002

TCP/IP 내부의 계층별 프로토콜

 

TCP의 개발 동기는 미국 국방성 산하의 고등 연구국에서 ARPANET을 연구할 때 관심을 가졌던 주제가 적국의 폭격, 핵전쟁에서도 정상적으로 동작하는 네트워크 였습니다.

당시 일반적으로 사용되던 통신방식은 ‘회선교환’ 방식이었습니다.

예를 들어 서울에서 부산으로 간다고 할 때 미리 이동할 경로를 ‘경부고속도로’로 정해놓는 방식입니다.

이러한 방식은 통신을 중계해주던 곳에 조금만 문제가 발생하면 통신이 바로 끊어지게 됩니다.

이에 따라 사용된 것이 ‘패킷교환(Packet Switching) 방식인데, 회선교환 방식과는 달리 경로가 정해져 있지 않습니다.

따라서 통신을 중계하는 곳에 문제가 발생해도 다른 경로로 우회할 수 있습니다.

다만 이 방식은 통신을 유지하는 것이 목적이기 때문에 안정성을 떨어질 수 밖에 없었습니다.

이로인해 중간에 데이터가 유실도거나, 너무 늦게 전달되는 등의 신뢰성에 문제가 있습니다.

이러한 문제점을 해결하고 신뢰성을 보장할 수 있는 통신 규약을 연구하게 됐고, 이에 탄생한 것이 TCP 입니다.

 

혼잡제어(Congestion Control)

한정된 네트워크 대역폭에 사용자가 점점 늘어나다보니 네트워크 회선이 그 부하를 감당하지 못하게 되어 사용할 수 없게 되었습니다.

1980년대 이러한 문제를 제어하기 위한 방법이 추가되었습니다.

통신을 시작할 때 상대방이 잘 받았으면 이후 보내는 양을 조금씩 늘려보다가 상대가 데이터를 제대로 받지 못한 것이 확인되면 보내는 양을 확 줄인 뒤 다시 조금씩 늘리는 방식으로 조절하는 기능입니다.

이러한 방법을 통해 TCP로 통신하는 사용자들이 네트워크 상황에 따라 속도를 조절할 수 있게 되었으며, 많은 사용자들이 동시에 통신을 시도하면 속도에서 손해를 보게되지만 회선이 죽지는 않게 만들었습니다.

 

 

IP(Internet Protocol)

흔히 ‘IP 주소’를 가리키는 말로 사용하지만, 정확하게는 인터넷 통신 규약을 말합니다.

컴퓨터의 경우 사용하는 OS도 다르고, 프로그램의 경우는 아예 구현된 언어가 다르기 때문에 네트워크에서 이들이 통신 할 수 있도록 하기 위해서는 통신 규약(Protocol)이 필요합니다.

그 때문에 ‘OSI 7’ 계층이 제안 되었습니다.

 

IP는 3번째 계층인 Network Layer(또는 Internet Layer)에서 사용하는 규약입니다.

보내는 컴퓨터(호스트)에서 받는 컴퓨터(호스트)까지의 통신을 책임집니다.

편지 봉투에 보내는 주소, 받는 주소를 작성하고 우표를 붙여서 우체통에 넣는 일과, 우편함에 들어온 편지를 꺼내서 나에게 온 편지가 맞는지 확인하는 정도의 작업이니다.

 

 

 

자료출처 :
마이크로소프트, support.microsoft.com/ko-kr/kb/164015
나무위키,
http://jkkang.net/unix/netprg/chap1/net1_2.html

Leave a Reply

Your email address will not be published. Required fields are marked *