1. Computer Science / / 2022. 8. 17. 19:16

[네트워크] TCP, IP

✅ 핵심 개념 : IP, 라우터, 패킷, TCP, 포트

컴퓨터들이 인터넷을 통해 통신하기 위해서는 통신을 어떻게 해야 하는지, 인터넷상의 한 지점에서 다른 지점으로 어떻게 데이터가 도달하는지 알려주는 표준 집합 혹은 프로토콜이 필요하다

프로토콜 없이는 수신 장치가 정보를 받게끔 보장하거나 받은 정보로 무엇을 해야 할 지 보장해줄 수 없다.

프로토콜에는 전송 제어 프로토콜(TCP, Transmission Control Protocol)과 인터넷 프로토콜(IP, Internet Protocol)이 있다.

 

TCP/IP를 사용하겠다는 것은 IP주소체계를 따르고 IP Routing을 이용해 목적지에 도달하며 TCP의 특성을 활용해 송신자와 수신자의 논리적 연결을 생성하고 신뢰성을 유지할 수 있도록 하겠다는 것을 의미한다.

즉, TCP/IP를 말한다는 것은 송신자가 수신자에게 IP주소를 사용하여 데이터를 전달하고 그 데이터가 제대로 갔는지, 너무 빠르지는 않는지, 제대로 받았다고 연락은 오는지에 대한 이야기를 하는 것


인터넷 프로토콜 스위트(Internet Protocol Suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 통신규약(프로토콜)의 모음이다.
인터넷 프로토콜 슈트 중 TCP, IP가 가장 많이 쓰이기 때문에 TCP/IP프로토콜 슈트라고도 불린다.
TCP/IP는 패킷 통신 방식의 인터넷 프로토콜인 IP와 전송조절 프로토콜인 TCP로 이루어져 있다.
IP는 패킷 전달 여부를 보증하지 않고, 패킷을 보낸 순서와 받는 순서가 다를 수 있다.
TCP는 IP위에서 동작하는 프로토콜로, 데이터의 전달을 보증하고 보낸 순서대로 받게 해 준다.

HTTP, FTP, SMTP 등 TCP를 기반으로 한 많은 수의 애플리케이션 프로토콜이 IP위에서 동작하기 때문에 묶어서 TCP/IP라고 부르기도 한다.

✅ TCP / IP

출처 : CS50

인터넷이 통신하기 위한 과정을 요약하면, 인터넷을 통해 데이터를 받기 위해서 우선 데이터가 더 작은 패킷들로 분해되어야 하고, TCP는 각 패킷에 포트 번호와 패킷 번호를 매깁니다. 

IP가 패킷의 목적지를 알려주면 라우터들을 통해 데이터가 전송됩니다.

라우터들은 마침내 패킷을 목적지로 보내줄 것입니다.


 

✅ TCP (전송 제어 프로토콜)

전송 제어 프로토콜(TCP)
인터넷 프로토콜 스위트(IP)의 핵심 프로토콜 중 하나로, IP와 함께 TCP/IP라는 명칭으로도 널리 불린다.
TCP는 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다.
TCP는 전송 계층에 위치한다.
네트워크의 정보 전달을 통제하는 프로토콜이자 인터넷을 이루는 핵심 프로토콜의 하나이다.
TCP는 웹 브라우저들이 월드 와이드 웹에서 서버에 연결할 때 사용되며, 이메일 전송이나 파일전송에도 사용됨
🔅 Transport Layer(4Layer)
송신자와 수신자의 논리적 연결을 담당하는 부분, 신뢰성있는 연결을 유지할 수 있도록 도와줌.
즉, Endpoint(사용자)간의 연결을 생성하고 데이터를 얼마나 보냈는지 얼마나 받았는지, 제대로 받았는지 등을 확인한다
(TCP, UDP가 대표적)

한 컴퓨터가 다른 컴퓨터로 데이터를 보낼 때 커다란 하나의 패킷을 작은 패킷들로 나누어 보내게 되고, 전송 제어 프로토콜(TCP)는 데이터를 순서 있는 패킷들로 분해하는 일을 합니다.

 

IP가 패킷들의 관계를 이해하지 못하고 그저 목적지를 제대로 찾아가는 것에 중점을 둔다면,

TCP는 통신하고자 하는 양쪽 단말(Endpoint)이 통신할 준비가 되었는지, 데이터가 제대로 전송되었는지, 데이터가 가는 도중 변질되지 않았는지, 수신자가 얼마나 받았고 빠진 부분은 없는지 등을 점검한다.

 

패킷들이 같은 시간에, 같은 순서로 목적지에 도착한다는 보장이 없기 때문에 TCP는 각 패킷에 대해 순서에 맞게 번호를 매깁니다.

이로써 수신 컴퓨터는 받은 패킷들을 올바른 순서로 재조립할 수 있게 됩니다.

 

패킷 번호를 할당하는 것 외에도, TCP는 데이터에 포트 번호를 할당합니다.

 데이터가 어떤 유형의 인터넷 서비스에 사용되는지를 나타내기 위해서 입니다.

 

이런 정보는 TCP Header에 담겨 있으며 SYN, ACK, FIN, Sourse Port, Destination Port, Sequence Number, Window size, Checksum과 같은 신뢰성 보장과 흐름 제어, 혼잡 제어에 관여할 수 있는 요소들도 포함되어 있다.

또한 IP Header와 TCP Header를 제외한 TCP가 실을 수 있는 데이터 크기를 세그먼트(Segment)라고 부른다.

TCP는 IP의 정보 뿐만 아니라 Port를 이용하여 연결한다.

한쪽 단말 (Endpoint)에 도착한 데이터가 어느 입구(Port)로 들어가야 하는지 알아야 연결을 시도할 수 있기 때문이다.

위의 TCP Header를 보면 Source Port 와 Destination Port를 확인할 수 있다.

예를 들어 양쪽 단말(Endpoint)이 HTTP로 이루어진 문서를 주고받고자 할 경우 데이터 통신을 하려면 Endpoint의 80Port로 연결

 

▶️TCP의 특징

1. 흐름제어

송신자는 자신이 한 번에 얼마나 보낼 수 있는지, 수신자는 자신이 데이터를 어디까지 받았는지 끊임없이 확인하고 TCP Header내의 ‘Window Size’를 사용해 한번에 받고/보낼 수 있는 데이터의 양을 정한다.

2. 혼잡제어

데이터를 주고받는 양 단말(Endpoint)도 중요하지만 데이터가 지나가는 네트워크망의 혼잡 또한 중요하다.

연결초기에 송신자와 수신자가 데이터를 넉넉히 주고받을 준비가 되어있더라도 중간 경로인 네트워크가 혼잡하다면 제대로 보낼 수 없다.

그리하여 송신자는 연결 초기에 데이터 송출량을 낮게 잡고 보내면서 수신자의 수신을 확인하며 데이터 송출량을 조금씩 늘린다.

그렇게 되면 현재 네트워크에서 가장 적합한 데이터 송출량을 확인 할 수 있게되고 이를 ‘Slow Start’이라함


✅ IP (인터넷 프로토콜)

🔅 Network Layer(3Layer)
IP(Internet Protocol)이 활용되는 부분으로, 한 Endpoint가 다른 Endpoint로 가고자 할 경우 경로와 목적지를 찾아줍니다.
이를 Routing이라고 하며 대역이 다른 IP들이 목적지를 향해 제대로 찾아갈 수 있도록 돕는 역할을 한다.

 

인터넷 프로토콜(IP)은 정보가 한 컴퓨터에서 다른 컴퓨터로 어떻게 전송되는지에 대한 규칙들을 모아놓은 것

인터넷 프로토콜은 연결된 라우터들의 망으로 만들어집니다.

라우터는 한 컴퓨터에서 다른 컴퓨터로 정보를 보내는 것을 도와주는 장치입니다.

송신 장치에서 목적지까지 가기 위해 데이터는 보통 여러 라우터들을 거쳐가야 합니다.

각 라우터는 최종 목적지까지 가기 위해 어느 방향으로 데이터를 보내야 하는지 알아낼 때 필요한 지시 정보들의 집합으로 만들어져 있다.

 

✅ 출처

www.edwith.org/cs50

 

728x90
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유