[프로그래밍언어활용] TCP/IP

thingzoo·2024년 2월 16일
0
post-thumbnail

TCP/IP

  • 현재 인터넷에서 널리 사용되는 프로토콜 모델
  • 시스템 간 네트워크 연결과 데이터 전송에 사용됨
  • 인터넷 통신을 위한 표준 프로토콜 모델로 사용됨

TCP/IP 4계층 구조⭐️

계층별 특징

네트워크 엑세스 계층(Network Access Layer)

  • OSI 모델의 물리&데이터링크 계층에 해당
  • 물리적 주소인 MAC 주소 사용
  • 주요 프로토콜
    • Ethernet: 물리 계층과 데이터링크 께층에서의 통신 접근 제어 정의
    • X.25: 패킷 교환망을 통한 통신 인터페이스 제공
    • RS-232C: DTE와 DCE 간 접속 규격

인터넷 계층(Internet Layer)

  • OSI 모델의 네트워크 계층에 해당
  • IP 패킷 전송 및 라우팅 기능 담당
  • 주요 프로토콜
    • IP: 비연결성 인터넷 프로토콜
    • ICMP: IP 패킷 전송 중 에러 메시지 제공
    • IGMP: 멀티캐스트 그룹 구성원 관리
    • ARP: IP 주소를 MAC 주소로 변환
    • RARP: 물리적 주소로부터 IP 주소 추출

전송 계층(Transport Layer)⭐️

  • OSI 모델의 전송 계층에 해당
  • 종단 간 신뢰성 있는 데이터 전송 관리
  • 주요 프로토콜
    • TCP
      • 클라이언트와 서버 간 연결 설정 후 데이터 주고 받는 연결지향형 프로토콜
      • 신뢰성 있는 데이터 전송 보장
      • 순차적인 데이터 전송과 재조립 보장
      • 연결 설정: 3-way handshaking
      • 연결 해제: 4-way handshaking
      • UDP보다 속도가 상대적으로 느림
      • 순서 제어, 오류 제어, 흐름 제어 기능 제공 → 투명성
      • 양방향 연결형 서비스 제공
      • 가상 회선 연결 형태의 서비스 제공
    • UDP
      • 연결 설정 없이 데이터 주고 받는 비연결성 프로토콜
      • TCP보다 빠른 전송 가능, 하지만 신뢰성 떨어짐
        • TCP에 비해 단순한 헤더 구조로 오버헤드 적음
        • 신뢰성 보다 속도가 중요시 되는 네트워크에서 사용
        • 실시간 전송에 유리
      • 패킷 유실 및 변조 발생해도 재전송 안함
      • 헤더: Source Port, Destination Port, Length, Checksum, Data

응용 계층(Application Layer)

  • OSI 모델의 세션&표현&응용 계층에 해당
  • 사용자와 직접적으로 상호작용하는 계층
  • 사용자가 소프트웨어 응용 프로그램을 통해 네트워크 서비스에 접근할 수 있게 해줌
  • 응용 프로그램 간 데이터 교환에 사용되는 프로토콜 포함
  • 주요 프로토콜
    • TCP 프로토콜
      • HTTP: 웹 서버와 클라이너튼 간 하이퍼텍스트 문서 송수신 프로토콜, 주로 80번 포트
      • FTP: 파일 전송에 사용되는 프로토콜, 데이터 전송에 20번, 제어 정보 전송에 21번 포트 사용
      • SMTP: 이메일 전송에 사용되는 프로토콜, 25번 포트 사용
    • UDP 프로토콜
      • DNS: 도메인 이름을 IP 주소로 변환하는 프로토콜, 53번 포트 사용
      • SNMP: 네트워크 장비 관리에 사용되는 프로토콜
      • DHCP: IP 주소 자동 할당 및 관리 프로토콜

IP(Internet Protocol)

IP의 특징

  • 호스트 간의 통신을 담당하는 프로토콜
  • OSI 7계층의 네트워크 계층(3계층)에 해당
  • 데이터그램을 기반으로 하는 비연결형 서비스(비신뢰성) 제공
  • 패킷의 분할/병합, 주소 지정, 경로 선택 기능(Routing) 제공
  • 패킷 교환 네트워크에서 정보를 주고받는데 사용
  • 흐름제어나 오류 복구 기능 없음
  • Best Effort 원칙에 따른 전송 기능 제공

IP 헤더

  • 버전(Version)
    • 사용중인 IP 프로토콜의 버전(예: IPv4, IPv6)
  • 헤더길이(Header Length)
    • IP 헤더의 길이를 바이트단위로 나타냄
    • 일반적으로 20~60 바이트
  • 서비스 유형(TOS,Type of Servie)
    • 요구되는 서비스 품질을 지정
  • 전체길이(Total Packet Length)
    • IP 헤더와 데이터를 포함한 전체 IP 패킷의 길이
  • 식별자(Identifier)
    • 각 데이터그램을 구별하기 위한 식별자
    • 단편화된 데이터그램의 원래 그룹을 식별하는데 사용
  • 플래그(Flags)
    • 데이터그램의 단편화 상태를 나타냄
  • 단편 오프셋(Fragmentation offset)
    • 단편화된 데이터그램들의 순서를 지정
  • 수명(TTL, Time to Live)
    • 패킷이 네트워크를 통과할 수 있는 최대 라우터 수
    • 라우터를 지날 때 마다 값이 감소되며 0이되면 패킷은 폐기됨
  • 프로토콜(Protocol)
    • IP 데이터그램의 페이로드에 포함된 상위 계층 프로토콜을 지정
  • 체크섬(Header checksum)
    • 헤더 필드의 오류를 검출하기 위한 정보
  • 발신지 주소(Source IP address)
    • 패킷을 보낸 노드의 IP 주소
  • 목적지 주소(Destination IP address)
    • 패킷이 도착해야하는 목적지의 IP 주소
      1. Total Packet Length (16 bits): IP 헤더 및 데이터를 포함한 IP 패킷 전체 길이를 바이트 단위로 길이를 표시. (최대값은 65,535 = 2^16 - 1)

TCP(Transmission Control Protocol)

TCP의 특징

  • 연결형 서비스(신뢰성)를 제공하는 전송 계층 프로토콜
  • OSI 7계층의 전송 계층(4계층)에 해당
  • 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능 제공
  • 스트림(Stream) 전송 기능 제공
  • IP와 함께 사용되어 데이터의 배달 처리 및 패킷 추적과 관리 담당

TCP 헤더

  • 송신지 포트(Source Port)
    • 출발지 포트 번호
  • 수신지 포트(Destination Port)
    • 목적지 포트 번호
  • 순서 번호(Sequence Number)
    • 바이트 단위로 순서화된 번호
    • 신뢰성 있는 전송과 흐름제어를 위해 사용
  • 확인 응답 번호(Acknowledgment Number)
    • 다음에 수신하길 기대하는 바이트 번호
    • 마지막으로 수신된 번호 + 1
  • 헤더길이(Header Length)
    • TCP 헤더의 길이
  • 예약된 필드(Reserved)
    • 현재 사용되지 않는 필드
  • 윈도우 크기(Window)
    • 수신 버퍼의 여유용량을 나타내는 필드
  • 검사합(checksum)
    • 패킷의 유효성을 계산하기 위한 필드
  • 긴급 포인터
    • 긴급 데이터가 시작되는 지점을 나타냄
    • TCP Flags의 U와 함께 사용
  • TCP Flags
    • U(Urgent): 긴급 데이터 존재 여부
    • A(Ack): 승인 비트, 응답 시 사용
    • P(Push): 밀어넣기 비트, 데이터의 즉각적인 전송 요구
    • R(Reset): 연결 초기화 비트
    • S(Syn): 연결 성정을 위한 동기화 비트
    • F(Fin): 연결 종료를 나타내는 비트
profile
공부한 내용은 바로바로 기록하자!

0개의 댓글