본문 바로가기
CS

TCP/IP Protocol

TCP/IP(Transmission Control Protocol/Internet Protocol)

이기종 간 컴퓨터 통신 및 자원 공유를 위한 프로토콜로, 현재 인터넷에서 일반적인 프로토콜이다. 

기본적으로 TCP, IP 말고도 다른 프로토콜들의 모음집이다. (UDP, ICMP, ARP, RARP 등)

 

 

TCP(Transmission Control Protocol)

- OSI 7계층 중 전송계층에 해당한다. 

- Host 사이의 신뢰성, 연결지향형 프로토콜이다. (3-way 등)

- 오류제어(Error control): 체크섬(Checksum), Go-Back-N ARQ, Selective-Repeat ARQ

- 흐름제어(Flow control): sliding window 제어 방식을 사용해 전송 속도를 조절(송신측이 ACK 받으면 win 크기 오른쪽으로 늘림)

- 혼잡제어(Congestion Control): 네트워크 혼잡 정도에 따라 데이터 전송량 조절 

- 연결제어(Connection Control): 연결의 설정(3-way handshaking), 데이터 송수실, 해제(4-way handsaking) 등 

- 분할 및 재조합: 세그먼트로 분할 후 수신측에서 재조합해 패킷으로 완성

- 순서제어(Sequence Control): 데이터 전송 순서 보장

 

 

1. 총 헤더 길이는 20bytes

2. 출발지/목적지 포트 주소 각각 2byte

3. 순서 번호: 세그먼트의 첫번째 바이트에 부여한 일련 번호로, 데이터 조각의 식별 번호로 사용(4byte) 

4. 확인 응답 번호: 받기 원하는 바이트 번호. 수신한 데이터 크기에 1을 더한 값 

5. Receive Window: 수신측에서 수신할 수 있는 최대 버퍼 크기

6. 제어 플래그

- URG: 긴급 상황

- ACK: 데이터 정상 전송

- PSH: 버퍼가 다 안 차도 값이 1이면 보냄

- RST: 재설정 요구

- SYN: 연결 설정 요구

- FIN: 연결 해제

 

 

 

UDP(User Datagram Protocol)

데이터그램 방식(비연결형, 비신뢰성 서비스)

따라서, 신뢰성 보다는 빠른 속도나 저비용의 전송에 적합하다. (멀티캐스트, 브로드캐스트, 인터넷 방송, DNS 서버 등)

 

 

길이: 전체 길이

체크섬; 헤더와 데이터 오류 검사 

헤더는 8byte로 고정적이다.

수신 순서도 TCP와 다르게 송신 순서와 다를 수 있다. 

오류제어나 흐름제어는 거의 없다.

 

 

 

 

IP(Internet Protocol)

- 데이터그램을 기반으로 비신뢰성, 비연결성 서비스며 OSI 계층 중 네트워크 계층에 해당한다.

- 패킷의 분해 및 조립, 주소지정, 경로 선택 기능 제공

- 망 연결이 IP Address로 이뤄지기 때문에 목적지 IP Address를 반드시 알아야 한다.

- 한 대의 컴퓨터가 동시에 여러 개의 주소를 사용할 수 있다. (그러나 하나의 IP를 여러 대 컴퓨터가 사용할 순 없다.)

- 인터넷에 연결된 컴퓨터를 연결하기 위해 주소를 숫자로 표현한 것으로 32비트 숫자를 조합해 각 컴퓨터에 부여한 번호를 말한다. 네트워크 주소와 호스트 주소로 구분, 클래스가 존재한다. 

 

프로토콜 포트 구분 기능 계층
TELNET 23 TCP 원격 접속 프로토콜 응용 계층
FTP(File Transfer Protocol) 제어(21), 데이터(20) TCP 파일전송 프로토콜
SMTP(Simple Mail Transfer Protocol) 25 TCP 전자우편 교환 서비스 프로토콜
HTTP(Hyper Text Transfer Protocol) 80 TCP/UDP 하이퍼텍스트 문서를 웹에서 교환하기 위한 프로토콜 
TCP(Transmission Control Protocol)     흐름/오류제어, 신뢰성 접속 서비스 전송 계층
UDP(User Datagram Protocol)     비신뢰성, 비접속 서비스
IP(Internet Protocol)     Packet 전송, 비신뢰성/비접속 인터넷 계층

 

 

 

SNMP(Simple Network Management Protocol)

네트워크 망을 관리하기 위한 UDP 상의 정의된 응용 계층 프로토콜.

manager와 agent로 구성되는데, SNMP를 지원하는 모든 노드는 SNMP agent가 돌고있고, 네트웤 장비의 효율적 관리 및 제어를 담당한다. 

default port 161, UDP

 

 

ARP(Address REsolution Protocol)

주소 결정 프로토콜. 네트워크 상에서 IP 주소를 물리적 네트워크 주소(Mac Address)로 대응

ARP 요청은 해당 네트워크 상 모든 호스트와 라우터에게 브로드캐스트, ARP 응답은 요청자에게만 유니캐스트.

 

 

ICMP(Internet Control Message Protocol)

호스트 서버 - 인터넷 게이트웨이 사이에서 메시지를 제어하고 오류의 처리와 전송 경로 등 변경 및 파악을 위한 프로토콜.

IP 데이터 그램을 사용하지만 메시지는 TCP/IP 소프트웨어에 의해 처리되며 응용프로그램 사용자에게는 보이지 않음.

PING 명령어가 대표적이다. 

 

 

IGMP(Internet Group Management Protocol)

Multicast(D클래스) 데이터의 수신을 원하는 Host들이 IGMP를 사용해 라우터에게 요청한다거나 수신 중지 요청을 할 때 이용된다. 라우터는 IGMP를 통해 멀티캐스트에 가입한 Host들을 감시한다. 

 

 

DHCP(Dynamic Host Configuration Protocol)

IP 주소를 ISP(Internet Server Provider)가 관리하고 할당하는데, 컴퓨터가 네트워크의 다른 장소에 접속되었을 때 자동으로 새로운 IP 주소를 보내줄 수 있게 해준다. 

 

 

NAT(Network Address Translation)

이전에 AWS 실습 때 구현했던 NAT. 외부 네트워크에 접속할 때 사설 IP 주소를 공용 IP 주소로 변환하거나 들어오는 공용 IP를 사설 IP 주소로 변환한다. 

일반적으로 공유기, 라우터, 방화벽에서 지원하며 폐쇄망에서 외부 인터넷과 통신할 때 NAT를 통해 공인 IP로 나가게 된다.

인터넷의 공용 IP 주소를 절약하고, 고유한 사설망을 외부로부터 보호할 수 있다.

'CS' 카테고리의 다른 글

IPv4  (4) 2025.08.17