-
TCP 가 뭔가요? TCP/IP 원리 (1)CS-Theory/NetWork 2023. 7. 25. 14:46
TCP 원리의 대한 설명을 위한 글이다.
TCP 원리(1) 에서는 TCP 의 정의 , TCP/IP 모델 , 전반적인 데이터 전달 방식 의 내용을 설명한다.
장문의 글이다.
글을 읽기전 라우터, 허브,공유기의 차이를 모르거나 본이니 타인에거 명확하게 설명이 불가하다면 꼭 다음글을 먼저 읽고 와 주면 좋겠다.
https://chosunghyun18.tistory.com/129
허브 , 스위치, 라우터 , 공유기의 차이
허브 , 스위치, 라우터 , 공유기는 컴퓨터 네트워크에서 각각 다른 기능을 한다. - 허브 : 데이터를 받은 포트를 제외한 나머지 모든 포트로 데이틀 브로드캐스트 한다. 소규모 네트워크를 구성시
chosunghyun18.tistory.com
1. TCP 의 정의
TCP/IP 는 Transmission Control Protocol/Internet Protocol의 약자이다.
Transmission : 전송이라는 뜻이다. 즉 TCP를 번역하면 "전송을 조종하는 프로토콜" 이라는 뜻이다.
여기서 TCP/IP는 명시적으로는 두가지의 프로토콜을 설명하는 것일 것 같다라는걸 알 수 가 있다..
그러나 TCP/IP 프로토콜이라고 하면 TCP와 IP 두 프로토콜만을 지칭하는 것이 아니라 UDP(User Datagram Protocol), ICMP(Internet Control Message Protocol), ARP(Address Resolution Protocol), RARP(Reverse ARP) 등 관련된 프로토콜을 통칭해서 사용 할 수 도 있다.
프로토콜이란 규약이라는 뜻으로 어떻게 데이터를 주고 받을지 정하는 방식이며, TCP/IP 의 탄생 배경은 당시 트렌스포트 계층의 표준화를 위하여 미국 국방성이 주도 했다라는 것 정도만 우선 알면 된다.
전송이란 특저 매체를 통하여 어떠한 것을 보내는 것이라는 뜻이다.
그럼 우리는 무엇을 전송하는 걸까 ?
컴퓨터를 연결하는데 있어 패킷(packet) 데이터를 보내 서로 통신을 하며 , 패킷 데이터는 네트워크에 보내고자 하는 데이터를 분해 하여 전송에 필요한 추가적으로 여러 정보를 추가한 데이터를 말한다.
여담으로 많은 양의 트래픽을 처리하기 위해서 큰 데이터들을 한번에 전송하기 위해서는 큰 대역폭이 필요하다 이때 네트워크에서 초당 실제로 처리되는 패킷의 양의 지표는 Throughput 이라 한다.
2.
OSI 7 Layer 와 함께 TCP/IP 모델을 보자.
출처 : http://jkkang.net/unix/netprg/chap1/net1_2.html OSI 7 Layer 에서 네트워크 계층과 트랜스포트 계층의 각 역할을 간단하게 보고 넘어 갈거다.
-트랜스포트 계층 : 데이터 전송의 신뢰성과 흐름 제어를 담당한다.
트렌스포트 계층은 어떤 데이터가 어떤 프로세스에거 전달을 해줘야하는지 포트 번호를 붙여주는 모듈 역할도 한다.
- 네트워크 계층
OS의 커널에 SW로 구현이 되어있으며 ,
패킷의 ip 주소를 이용하여 자신의 다음 "라우터"에게 보낼 곳을 찾고(rounting) 데이터를 넘겨준다(forwarding) .
두 설명은 각각 대응되는 TCP/IP 모델의 트랜스포트 계층과 , 인터넷 계층의 설명과 차이가 거의 없다.
트랜스 포트 계층 : 데이터(segments)를 분해 그리고 올바른 방식으로 조립을 하는 역할을 갖는다.
인터넷 계층 : 패킷 교환(패킷 스위칭)이 일어난다.
3. 전반적인 동작 방식
1. 데이터가 패킷으로 변환되는 과정
- 데이터를 전송하려는 애플리케이션은 트랜스포트 계층에 데이터를 전달한다.
- 트랜스포트 계층은 받은 데이터를 패킷으로 분할하거나, 패킷으로 묶어서 특정 정보(포트 번호 등)를 추가합니다.
- TCP 프로토콜의 경우, 세그먼트라고 불리는 패킷을 생성한다. 이 세그먼트에는 출발지와 목적지 포트 번호, 일련번호, 확인응답(ACK) 번호, 윈도우 크기 등의 정보가 포함된다.
- UDP 프로토콜의 경우, 데이터그램이라고 불리는 패킷을 생성합니다. 이 데이터그램에는 출발지와 목적지 포트 번호만이 포함된다.
패킷 스위칭은 대표적으로 두 가지 형태로 구현된다.
- 데이터그램(Datagram) 패킷 스위칭: 각 패킷이 독립적으로 전달되는 방식으로, 각 패킷은 목적지까지 다른 경로로 전송될 수 있다. 예를 들어, 인터넷에서 사용되는 IP(Internet Protocol)가 데이터그램 패킷 스위칭을 기반으로 하며 비연결형 , 빠르지만 신뢰성이 낮은게 특징이다.
- 가상회선(Virtual Circuit) 패킷 스위칭: 패킷들이 일련의 노드 사이에서 미리 설정된 경로를 따라 전달되는 방식이다. 이 경로는 패킷이 전송되기 전에 노드들 간에 협상되며, 패킷은 동일한 경로를 따라 전송됩니다. 예를 들어, X.25나 ATM(Asynchronous Transfer Mode) 네트워크에서 가상회선 패킷 스위칭을 사용한다.
(TCP 의 3way ,4 way 는 Virtual Circuit 이다)
2. 데이터 패킷의 스위칭 과정
- 트랜스포트 계층에서 생성된 세그먼트 또는 데이터그램은 인터넷 계층으로 전달
- 인터넷 계층에서는 각 패킷에 대해 목적지 IP 주소를 확인하여 어떤 경로로 데이터를 전송할지 결정
- 라우터라고 하는 장치들이 이러한 패킷을 받고, 최적의 경로를 선택하여 다음 라우터로 패킷을 전달
- 라우팅과정을 거쳐 목적지까지 패킷이 전송. 중간에 여러 개의 라우터를 거쳐 최종 목적지에 도달
- 마지막 라우터가 패킷을 목적지 호스트로 전달합니다.
- 수신 호스트에서는 인터넷 계층에서 받은 패킷을 트랜스포트 계층으로 전달하여 세그먼트나 데이터그램을 추출
트랜스 포트 계층 이 올바른 방식으로 조립을 한다 했을때 여러 라우터롤 통해 전달된 패킷의 데이터의 순서를 보장한다.
- 최종 목적지인 애플리케이션은 트랜스포트 계층으로부터 데이터를 추출하여 사용
여기까지 설명을 하면 TCP/IP 가 다르게 보이면 좋겠다.
비연결형 기반의 프로토콜 ip 보다 상위 계층인 데이터의 순서 보장과 에러 복구가 가능한 TCP를 사용하는것이 안정적인 통신을 가능하게 한다.
즉 일반적으로 TCP는 IP 와 같이 사용이 된다. IP 는 데이터 전달만의 목적이기 때문에 TCP 의 패킷의 추적 및 관리가 필요하다.
TCP 원리(2) 에서는 TCP 의 패킷의 추적 및 관리 를 중점으로 설명하겠다.
사진 자료
https://cabulous.medium.com/tcp-3-way-handshake-and-how-it-works-8c5f8d6ea11b
TCP 3-Way Handshake and How it Works
Handshake has a purpose — exchanging information to establish a connection.
cabulous.medium.com
'CS-Theory > NetWork' 카테고리의 다른 글
HTTP 가 뭔가요 ? Tomcat 의 요청가능한 최대 데이터 크기? (0) 2023.07.27 그럼 SYN 패킷은 어떻게 이루어져 있나요 ? TCP/IP 원리 (3) (0) 2023.07.27 앱 서버로 API 를 호출 하면 몇번의 데이터 통신이 발생하나요 ? TCP/IP 원리 (2) (0) 2023.07.25 허브 , 스위치, 라우터 , 공유기의 차이 TCP/IP 원리 (0) (0) 2023.07.25