IP/TCP

JinJinJara·2023년 9월 16일
0

TIL

목록 보기
6/19

IP (Internet Protocol)

송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보를 주고받는데 사용하는 정보 위주의 규약

  • OSI 네트워크 계층에서 Host 의 주소지정과 패킷 분할 및 조립 기능을 담당
  • 네트워크 주소와 호스트 주소로 나뉜다.
    • 네트워크 주소 : 호스트들을 모은 네트워크를 지칭하는 주소 xx아파트 103동
    • 호스트 주소 : 하나의 네트워크 내의 호스트를 구분하기 위한 주소 903호
  • 특징
    비신뢰성 : 흐름에 관여하지 않아 보낸 정보가 제대로 갔는지 보장하지 않음
    비연결성 : 전송과정 중 패킷의 손상과 순서 등을 보장하지 않음 → TCP

IPv4, (Internet Protocol Version 4)

  • 32bit
  • 한 옥탯 당 256(2⁸)개의 수를 나타내면 총 4,294,967,296 (256⁴)개의 주소를 만들 수 있다.
  • 인터넷 환경이 발달하면서 동시에 더 많은 IP주소가 필요해져, 새로운 주소 체계인 IPv6 (128bit) 가 나오게 되었다.

IPv4 Address

Class : 하나의 IP 주소에서 네트워크 영역과 호스트 영역을 나누는 방법
필요한 호스트IP의 개수에 따라 네트워크의 크기를 다르게 할당

  • 모두 0인 경우에는 네트워크 주소로 사용
  • 모두 1인 경우에는 브로드캐스트 주소로 사용
  1. A 클래스 : 0으로 시작하는 IP 주소

    • 첫번째 옥텟의 길이 : 0 ~ 127 = 0000 0000 ~0111 1111
    • 실제 사용할 수 있는 주소 : 1.0.0.0 ~ 126.255.255.255
  2. B 클래스 : 10으로 시작하는 IP 주소

    • 첫번째 옥텟의 길이 : 128 ~ 191 = 1000 0000 ~1011 1111
    • 실제 사용할 수 있는 주소 : 128.0.0.0 ~ 191.255.0.0
  3. C 클래스 : 110으로 시작하는 IP 주소

    • 첫번째 옥텟의 길이 : 128 ~ 191 = 1100 0000 ~1101 1111
    • 실제 사용할 수 있는 주소 : 192.0.0.0 ~ 223.255.255.0

142.10.12.6 : B클래스, 네트워크-142.10.00.0, 호스트 : 12.6


CIDR (Classless Inter-Domain Routing)

  • Classful : 클래스(Class) 기반의 IP 주소 체계
    • class를 기반으로 할당받았을 때 IP 주소를 낭비

클래스리스 : 클래스가 존재하지 않는 도메인 간 라우팅 기법

  • 클래스 주소 체계와 같이 호스트와 네트워크를 구분하기 위해 서브넷 마스크 (Subnet Mask 사용

Subnet Mask

  • IP 주소와 같은 32bit 2진수로 표현
  • 연속된 1과 0의 형태
  • Prefix : /24 와 같이 간소화 해서 표현

IP protocol - Header


<설명 링크>
https://superbono-2020.tistory.com/66


TCP, (Transmission Control Protocol)

전송 제어 프로토콜 : TCP는 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다.

TCP Flags

TCP가 통신하면서 상대방과의 연결 상태를 확인하는데, 어떤 플래그를 사용하는 지에 따라서 '데이터를 보내도 되는지 확인 하는' 것인지, '연결 초기화'를 하려는지, '데이터를 보내는지', '급한 데이터인지' 등등을 표기

  • 플래그는 꼭 하나만 세팅 되지는 않으며 동시에 여러개가 세팅 되기도 함
    • U: Urgent
      • 긴급 비트로, 현재 보내는 데이터가 우선순위가 높은 데이터가 포함되어 있음을 의미한다.
    • U가 1로 세팅 : 급한 데이터
      • 뒤에 나오는 Urgent pointer와 관련이 있다.
    • A: Acknowledgment
      • 승인 비트로, 데이터를 보내도 되는지 물어본 것에 대한 '승인'을 할 때 사용함
    • P: Push
      • 밀어넣기 비트로, 원래 데이터를 추가적으로 전송하려면 TCP 버퍼(데이터를 받을 수 있는 공간)가 일정 크기만큼 쌓여야 하는데 이것 상관 없이 데이터를 밀어넣겠다는 뜻(잘 사용하지 않는다.)
    • R: Reset
      • 초기화 비트로, 연결된 상태에서 추가적으로 데이터 주고 받으려 하는데 문제가 발생해서 새로고침 할 때 사용
    • S: Sync(⭐⭐⭐)
      • 동기화 비트로, 상대방과 연결 시작할 때 무조건 사용하며 이것이 보내지고 난 다음에 둘 사이의 연결이 동기화 되기 시작함
      • sync 비트를 받은 이후에는 서로 상태를 주고 받으며 상태를 계속 동기화 시킴
    • F: Fin
      • 종료 비트로, 연결을 끊을 때 사용한다.

3-way handshake

UDP

TCP의 안정성을 필요로 하지 않는 애플리케이션의 경우 일반적으로 TCP 대신 비접속형 사용자 데이터그램 프로토콜(User Datagram Protocol)을 사용

  • 장점 및 단점 : 전달 확인 및 순차 보장 기능이 없는 대신 오버헤드가 작고 지연시간이 짧다

  • 비연결형 + 비신뢰성
    흐름-순서 제어 X / 복구 기능 X / 단순 헤더 구조 = 오버헤드 적음!!

0개의 댓글