2016년 7월 25일 월요일

TCP/IP 일반 - 프로토콜의 원리 및 이해

ㅇ ㅂㅇ

> 프로토콜의 원리 및 이해
 - 프로토콜 계층도

 - IP(Internet Protocol)
  -- 노드 간 데이터 전송 경로를 확립하며 IPv4에서 IPv6로 전환 중
  -- TCP/IP 네트워크에서 출발지, 목적지 IP 주소를 지정하게 되는 프로토콜
  -- Packet의 목적지 주소를 보고 최적의 경로를 찾아 패킷을 전송해주는 것이 주된 역할
  -- 비 신뢰성, 비 연결 지향적(신뢰성보다 효율성에 중점을 둠)


  -- IHL(HELN)
   --- (Header의 길이 / 4) Option이 없으면 20byte 이므로 5라는 값을 가짐
  -- Flags(3Bits)
   --- Reserved(Must be zero)
   --- DF(Don't Flagement)
    ---- Datagram의 분할 방지
   --- MF(More Flagment)
    ---- Datagram이 분할 될 때 마지막 조각이면 0, 아니면 1(0,1을 통해 마지막 조각을 판단하여 데이터의 끝을 판단)

 - ARP(Address Resolution Protocol)
  -- IP 주소를 MAC 주소로 변환하는 표준 프로토콜(IP 주소(32bit) -> MAC주소(48bit))
   --- 해당 IP 주소가 동일 네트워크에 있을 때 해당 목적지의 MAC 주소를 찾게 됨
   --- 해당 IP 주소가 외부 네트워크에 있을 때 Router의 MAC 주소를 찾게 됨
  -- ARP Request는 Broadcast, ARP Reply는 Unicast
  -- ARP는 한 번 찾은 MAC 주소를 ARP-Cache에 일정 기간 IP주소-MAC주소 형태로 보관함
   --- ARP-Cache 확인 : arp -a
   --- ARP-Cache 생성 : arp -s [IP주소] [MAC주소]
   --- ARP-Cache 삭제 : arp -d [IP 주소]
  -- 취약점 : 무조건 응답 수용함(요청하지 않은 응답에도 수용함)
   --- 이런 취약점을 노린 공격을 ARP Cache Posisoning 이라고 함

 - RARP(Reverse ARP)
  -- MAC 주소를 IP주소로 변환해주는 프로토콜(MAC 주소(48bit) -> IP 주소(32bit))

 - ICMP(Internet Control Message Protocol)
  -- IP의 특징인 비신뢰성과 비연결성의 한계를 보완하기 위해, 노드 간의 에러사항이나 통신 제어를 위한 메시지를 보고 할 목적으로 만들어진 프로토콜
  -- 에러를 Report 할 뿐, 해결하는 기능은 없으며 대표적으로 Ping이 있음
  -- ICMP는 TCP/UDP Header가 필요 없고 IP Header와 IP Data 부분에 ICMP 메시지를 포함해서 보냄
  -- ICMP 메시지의 종류
   --- Type 8 : Echo Request
   --- Type 0 : Echo Reply
   --- Type 3 : Destination Unreachable(CODE 영역에 원인 셜명)
   --- Type 4 : Source Quench(Flow Control 할 때, 전송속도 줄이라는 의미)
   --- Type 5 : Redirect ; Route 를 변경하라는 메시지
   --- Type 11 : Time Exceeded ; 시간 초과

 - IGMP(Internet Group Management Protocol)
  -- 멀티캐스트 그룹을 관리하기 위한 프로토콜(멀티 캐스트 멤버 가입, 수정, 탈퇴)
  -- 멀티캐스트 호스트와 라우터 사이에서 동작(같은 네트워크에서만 동작 / TTL 1)

 - TCP(Transmission Control Protocol)
  -- Transport Layer의 프로토콜로 신뢰성과 연결지향적 특징
  -- 혼잡제어와 흐름제어 기능 제공(Sliding Window) / 에러 제어도 가능(Checksum)
  -- 클라이언트와 서버의 데이터 교환을 위해 TCP 3-WayHandShake를 통해 TCP Session을 확립해야 함

  -- TCP Header Flag
   --- URG : Urgent Pointer 가 유효함
   --- ACK : Ack Number가 유효함
   --- PSH : 수신자에게 빨리 응용프로그램으로 전달 할 것을 지시
   --- RST : 연결을 Reset 할 것을 지시
   --- SYN : 연결 시작
   --- FIN : 연결 종료

 - UDP (User Datagram Protocol)
  -- Transport Layer의 프로토콜로 TCP와 달리 비신뢰성과 비연결지향적인 특징을 가짐
  -- Sequence Number와 Ack Number가 없어 순서제어와 흐름제어가 불가능
  -- 연결하는 과정이 없어 빠른 처리와 실시간성을 요구하는 서비스에 적합

 - TCP / UDP 비교






댓글 없음:

댓글 쓰기