본문 바로가기

네트워크

TCP/IP 프로토콜

프로토콜

호스트와 호스트 사이에 사용하는 일종의 언어와 같은 개념

 

TCP/IP 프로토콜

비음성 통신을 구현하기 위해 설계도 작성.

TCP 방식에 기반에 오류를 제어하기 위한 계층
IP 방식에 기반해 데이터를 전송하기 위한 계층

 

TCP/IP 프로토콜 개발에 착수하던 당시에는 인터넷 표준 프로토콜이 없었기 때문에 호스트 제작 업체마다 자신만의 프로토콜을 사용해 통신 수행. 표준으로 통합하기 위해 OSI 프로토콜을 개발하였으나 TCP/IP 프로토콜이 표준으로 자리 잡음. 결국 OSI는 네트워크 동작 과정을 소개하는 기본 모형으로 자주 언급됨.

 

계층 구분 해당 계층에 속하는 프로토콜 종류
응용 FTP, SSH, TELNET, SMTP, DNS, DHCP, HTTP, POP3, SNMP, SSL 등
전송 UDP, TCP
네트워크 IP, ICMP, IGMP, ARP, RARP
데이터링크 이더넷, PPP
물리  

 

계층이란 비음성 통신에서 데이터를 전송하기 위한 일련의 과정이나 단계 또는 절차.

송신: 응용 -> 전송 -> 네트워크 -> 데이터링크 -> 물리

수신: 물리 -> 데이터링크 -> 네트워크 -> 전송 -> 응용

 

 

응용계층

전송하고자 할 UDP 페이로드를 생성해주는 계층

페이로드를 생성한 뒤 사용자의 실제 정보를 저장

전송단위: 메시지

wireshark로 패킷 분석하기

wireshark는 대표적인 오픈소스 기반의 패킷 분석 도구이다. 패킷분석을 스니핑이라고도 한다.

 

1. wireshark로 패킷 분석 시작

설치: www.wireshark.org  

 

Wireshark · Go Deep

Wireshark: The world's most popular network protocol analyzer

www.wireshark.org

 

2. cmd창에 nslookup www.google.co.kr  입력

nslookup 도메인 주소: 위의 명령으로 도메인에 해당하는 IP주소를 알아낼 수 있다.

 

3. DNS 프로토콜 확인

 

빨간 박스 안에 있는 내용이 mdns의 페이로드에 해당한다.

 

 

전송계층

포트번호를 가지는 첫 번째 헤더와 결합.

UDP, TCP 프로토콜만 존재. 둘의 차이는 단편화와 버퍼링 유무.

전송단위: 데이터그램

UDP 헤더의 구조

UDP 헤더는 8바이트로 고정이다.

 

TCP 헤더의 구조

크기가 가변적이다. 보통 20바이트지만 넘어갈 수도 있다.

- 일련번호(Sequence Number)와 확인 번호(Acknowledment Number) 항목은 3단계 연결 설정과 관련있다.

세그먼트의 연속성을 보장하기위해 일련번호와 확인번호를 이용한다.

- 오프셋(Offset) 항목: 헤더의 길이를 담는다.

- 플래그(Flag) 항목: TCP 방식이 수행하는 일련의 제어 정보를 담는다.

- 윈도우(Window) 항목: 흐름 제어 기능과 관련있다.

- 긴급 포인터(Urgent pointer): 플래그 항목에서 URG 항목이 나타날 때 0에서 1로 설정이 바뀌면서 동작.

 

1) 3단계 연결 설정 (버퍼링)

송신자, 일련번호 1000, 확인번호 NULL

SYN 신호가 담긴 세그먼트 헤더 IP 패킷 헤더 이더넷 프레임 헤더

수신자, 일련번호 2000, 확인번호 1001

ACK, SYN 신호가 담긴 세그먼트 헤더 IP 패킷 헤더 이더넷 프레임 헤더

송신자, 일련번호 1001, 확인번호 2001

ACK 신호가 담긴 세그먼트 헤더 IP 패킷 헤더 이더넷 프레임 헤더

2) 단편화 수행

단편화: 전송 효율성과 데이터 기밀성 등을 위해 TCP 페이로드를 여러 개로 분할하는 기법

 

플래그

구분 의미
CMR 혼잡 윈도우 크기 감소 신호
ECN 혼잡 발생 신호
URG 긴급 데이터 신호
ACK 확인 응답 신호
PSH TCP 페이로드를 포함한다는 신호
RST 상대방과 연결을 강제 종료 하기 위한 신호
SYN 상대방과 동기화를 확립하기 위한 개시 신호
FIN 상대방과 동기화를 해제하기 위한 종료 신호

 

네트워크 계층

IP주소를 가지는 두 번째 헤더와 결합.

전송단위: 패킷

쓰다가 렉걸려서 다 캡처한 사진으로 바꿈 ㅡㅡ,,,ㅠㅠㅠㅠ

 

 

데이터링크 계층

맥 주소를 가지는 세 번째 헤더와 결합.

전송단위: 프레임, 셀(ATM 전송 기법에서 사용, 프레임 크기 늘 일정)

ARP 프로토콜과 유사함!

#LAN/WAN #ARP

 

물리계층

비트 전송 단위로 변환

#허브 #스위치 #라우터

구분 관련 계층 처리 단위 테이블 유무 동작 방식
허브 물리 비트   플러딩
스위치 데이터 링크 프레임 스위칭 테이블 포워딩/플러딩
라우터 네트워크 패킷 라우팅 테이블 포워딩

 

[허브의 1번 포트: PC, 4번 포트: 스위치  ]

[스위치 1번 포트: 허브, 4번 포트: 라우터]

[라우터의 이더넷 인터페이스: 스위치     ]

WAN 영역으로 나가는 라우터의 시리얼 인터페이스는 PPP 방식이라고 가정

 

PC에서 발생한 비트가 회선을 타고 먼저 허브에 도착했다고 하자.

허브: LAN 영역에서 사용하는 대표적인 집선 장치(무선 공유기). 비트 단위 플러딩 처리

 

스위치: 비트 단위로 들어온 신호를 수신한 뒤 프레임으로 변환
             목적지 맥 주소가 자신의 스위칭 테이블에 있는지 검사

             프레임을 다시 비트로 변환한 뒤 특정 포트로만 비트 신호를 포워딩, (맥주소가 테이블에 없으면 플러딩)

포트 번호 맥 주소

<스위치 테이블의 기본 구조>

 

라우터: 비트 단위로 들어온 신호를 프레임으로 변환

             자신의 이더넷 인터페이스에 새겨진 맥 주소와 프레임 헤더의 목적지 맥 주소를 비교. 일치하면 패킷으로 변환

             목적지 IP 주소가 자신의 라우팅 테이블에 있는지 검사

             패킷을 프레임으로 변환한 뒤 프레임 헤더에 ppp 정보 삽입.

             (ip주소가 테이블에 없으면 라우팅 불가로 판단해 패킷 폐기하고 ICMP 방식을 이용해 이러한 사실 통보)

목적지 네트워크 ID 경유지 인터페이스

<라우팅 테이블의 기본 구조>

 

총 정리

계층 구분 전송 단위 주요 프로토콜 해당 장비
응용 메시지    
전송 데이터그램 / 세그먼트 UDP / TCP  
네트워크 패킷 IP / ICMP 라우터
데이터 링크 LAN / WAN 프레임 ARP 스위치
물리 비트   허브

 

'네트워크' 카테고리의 다른 글

TCP/IP 네트워크 공격 유형  (0) 2023.09.18
LAN/WAN  (2) 2023.09.18
데이터 전송 단위, 페이로드, 데이터그램/세그먼트, 패킷, 프레임  (0) 2023.07.10
UDP방식, TCP방식  (0) 2023.07.10
DNS, DNS 캐시 테이블  (0) 2023.07.07