관리 메뉴

IT창고

네트워크 데이터 전송 프로토콜 본문

서버운영/Network

네트워크 데이터 전송 프로토콜

방구석여포 2017. 11. 15. 17:15

네트워크의 데이터를 전송하는 프로토콜이 5종류가 있는데 TCP, UDP, IP, ICMP, ARP가 있습니다. 이 중에서 TCP, UDP, IP는 실제로 데이터를 전송하는 프로토콜이고 ICMP와 ARP는 데이터 전송을 도와주고 보조 해주는 프로토콜 입니다.


TCP(Transmisson Control Protocol)에 대해 알아보겠습니다.

TCP는 Layer 4계층 프로토콜이라고도 불리며 연결 지향성으로 상대방과 통신 연결을 실시하고 난 후에 데이터 요청이나 응답을 합니다. 그리고 TCP에서는 3-Way 핸드 쉐이킹으로 동작합니다.

3-Way 동작 쉐이킹이란 클라이언트가 syn을 서버로 보내고 서버가 받으면 syn,ack를 클라이언트에 보내고 받은후에 ack를 서버에 보내는 것을 말합니다.

TCP Control Flog가 있습니다 어떤 신호인지 보고 알수있는데 8bit로 구성되지만 실질적으로는 6bit만 사용합니다. 

Congestion

1 0 0 0 0 0 0 0

 

ECN 

0 1 0 0 0 0 0 0 

 

urg

0 0 1 0 0 0 0 0

긴급한 데이터 표기 

ack

0 0 0 1 0 0 0 0

확인 응답 및 승인 

psh 

0 0 0 0 1 0 0 0

수신처리 후에 상위 프로세스로 처리 

rst

0 0 0 0 0 1 0 0 

강제종료 

syn

0 0 0 0 0 0 1 0

통신 개시 

fin

0 0 0 0 0 0 0 1 

정상적인 종료 

위의 내용은 와이어샤크에서 확인해볼수있습니다.

TCP에는 여러 기능과 서비스가 있습니다. 데이터 스트림 서비스는 데이터를 세그먼트 단위로 생성해서 전송이나 수신 처리를 합니다. 흐름제어 기능은 두가지가 있는데 stop&wait기법으로 송신한 세크먼트에 대한 ack를 무조건 수신해야만 그 다음 세그먼트를 전송하는 방식으로 다음 세그먼트 송신 처리까지 지연될수있고 ack양이 많아질수있고 슬라이딩 윈도우 기법은 수신한 쪽의 세그먼트 처리양에 맞게 송신한 쪽으로 세그먼트를 다수 전송합니다 stop&wait기법보다 지연시간이나 ack양이 최소화될수있습니다. 그 외에도 혼잡이 발생할 경우 전송률을 최소화하는 혼잡 제어 기능과 오류검사 및 재전송 기능 등이 있습니다. TCP로 사용하는 것중에 HTTP(80), https(443), telnet(23), ssh(22), ftp(21), ftp-data(20), smtp(25), pop3(110) 가 있습니다.


UDP(User Datagram Protocol)에 대해 알아보겠습니다.

UDP는 Layer4 계층이라불리고 비연결 지향성이며 TCP에 비해 특별한 특징이나 기능이 전혀 없고 오류검사만 합니다.

특별한 기능이 없다고 신뢰성이 낮다는 것과는 전혀 상관없습니다. UDP에 사용되는 것들은 DNS(53), tftp(69), bootpc(dhcp client 68), bootps(dhcp server 67), snmp(161), ntp(123)와 같이 서로 연결할 필요가 없는 서비스를 사용합니다.


IP(Internet Protocol)에 대해 알아보겠습니다.

Layer3 계층이라고 불리며 비연결 지향성이고 로컬 환경애서 리모트 환경으로 데이터의 전송을 담당합니다. 또한 TTL(Time to Live)로 거리 측정과 패킷 루프를 방지할수있습니다.

TTL에 대해 알기전에 기본적으로 운영체제 TTL의 기본값을 알아야합니다. Windows는 128 Linux는 64 Cisco는 255 입니다.

알기쉽게보면 아래의 간단한 그림과같습니다.

A(Windos)-------Router1---------Router2-------Router3-------B(Linux Server)

요청(TTL=128)            라우터하나마다 TTL1씩 감소합니다       요청(TTL=125)

응답(TTL = 61)                                                                응답(TTL=64)


위와 같이 TTL로 거리를 측정할수있습니다 실습은 cmd창에 KT DNS서버나 구글사이트로 확인해보면 됩니다.

또한 TTL은 루프를 방지할수있는데 루프는 한곳에서 계속 돌고있는 현상을 뜻하는데 이 현상이 지속되면 과부하가 걸립니다 루프된곳에 TTL번호가 0이 되면 그 데이터는 Drop이되고 과부하가 걸리지 않게 됩니다. 혹시 리눅스 TTL기본값이 64은 너무 작은게 아닌가 할수있지만 전 세계적으로 아무리 멀어도 라우터가 30개정도만 거쳐가기때문에 문제없습니다.


ICMP(Internet Control Message Protocol)에 대해 알아보겠습니다.

ICMP는 IP프로토콜을 이용한 데이터 전송 여부가 가능한지 테스트하는 프로토콜입니다. 네트워크를 구축하고 정식 서비스전에 테스트용도로 사용합니다. 여기에 사용하는 명령어가 ping과 tracert 명령어가 있습니다. tracert명령어는 처음 TTL을 1로 보내고 막히면 2로 보내면서 점점 숫자가 증가하는 형식으로 목적지에 도착하면 끝냅니다. ICMP는 우리나라같은 경우 네이버나 다음 같은 대형포털사이트는 막아놓았는데 디도스공격 같은걸 줄수있기 떄문에 ICMP를 차단해 놓았습니다. 윈도우에서 개인컴퓨터로 오는 ICMP 프로토콜도 막을 수있습니다. 제어판 -> 방화벽 -> 고급설정 -> 인바운드 규칙에서 설정하실수있습니다. 


Tip

ping 명령어의 옵션 -t는 계속 ping을 보내고 옵션 -l 100은 기본값으로 보낼때는 32바이트의 데이터를 보내는데 100바이트의 데이터를 보냅니다.


ARP(Address Resolution Protocol)에 대해 알아보겠습니다.

ARP는 주소변환 프로토콜로 목적지 IP주소에 대한 MAC주소를 설정하는 프로토콜입니다 상대의 MAC주소를 모를떄 ARP요청을 하게 됩니다. ARP는 상대의 mac주소를 모르기 떄문에 브로드케스트로 정보를 줘야합니다 브로드케스트 mac주소는 FFFF.FFFF.FFFF입니다. mac주소를 얻으면 유니케스트로 정보를 보내줍니다. 상대의 mac주소는 cmd창에서 arp -a로 확인할수있고 arp -d로 mac주소 테이블 정보를 삭제할수있습니다. 

'서버운영 > Network' 카테고리의 다른 글

네트워크 정적경로와 스위치  (1) 2017.11.25
네트워크 Cisco IOS 명령어  (0) 2017.11.22
네트워크 IP 주소  (0) 2017.11.18
네트워크 데이터 전송 주소 체계  (0) 2017.11.11
네트워크 구성요소  (0) 2017.11.10
Comments