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 주소를 절약하고, 고유한 사설망을 외부로부터 보호할 수 있다.