TCP/IP 기초와 JAVA/C#을 활용한 네트워크 프로그래밍 2장

신범철·2021년 9월 24일
0

21-2네트워크수업

목록 보기
5/5

머리말

학교 네트워크 프로그래밍 강의 교재이다.
하지만 수업은 4장 http부터 진행 되어 1,2,3장을 선행하려고 작성하게 됨

TCP/IP 기본동작

IP헤더

ip패킷 = ip헤더 + 데이터

ip헤더는 32비트(4바이트)의 배수이다.
보통 20바이트 길이를 가짐

IP헤더구성

  • 버전 : 현 ip프로토콜의 버전(ipv4) 4비트
  • 헤더길이 : ip 헤더의 길이 32비트 단위로 표시
  • tos(type of sevice) : ip데이터의 서비스 타입
  • 전체길이 : 전체 ip패킷의 길이 16비트
  • ID : ip분할될때 여기에 ID값 저장
  • 플랙 : 분할의 정보(비트 0: 사용 안함, 비트1 : DF(don't fragmaentaion)플랙. 0:분할 가능, 1: 분할 불가능, 비트 2: M(more) 플랙. 마지막패킷인지 여부 0일때 마지막 패킷)
  • 오프셋 : ip분할에 경우 본래 데이터의 오프셋 값
  • TTL(time to live) : 패킷이 네크워크에 존재할 수 있는 시간(초)
  • 프로토콜 : ip패킷을 전달하는 상위 데이터 프로토콜 의미(TCP, UDP 등)
  • 헤더 체크섬 : 헤더 부분 에러 조사(전송 도중 비트 에러발생한 경우만)
  • 소스 ip주소 : 송신 측 ip주소
  • 목적지 ip주소 : 수신 측 ip주소

ip패킷 분할

네트워크 전송선을 통해 실제 데이터를 주고 받는 링크 계층은 한번에 전송할 수 있는 최대 패킷크기(MTU)가 정해져있다. 데이터가 MTU보다 크면 분할을 때림
ip분할을 위해 ip헤더의 id필드, 플랙, 오프셋의 필드 값이 사용됨
수신측에서 플랙필드의 M플랙이 1로 된 ip패킷을 받으면 내부의 재조립 타이머를 시작

트랜스포트 계층

트랜스포트 계층은 데이터를 각 호스트의 애플리케이션 프로세스 사이에 전달하는 기능

TCP 헤더

TCP가 제공하는 기능

  • 스트림 전송 : 순서에 맞게 전송
  • 가상 회선 연결 : 상대방이 수락을 하면 마치 직접 회선한것 같은 효과
  • 버퍼 전송 : 버퍼 기능 사용 가능
  • 양방향 통신
profile
https://github.com/beombu

0개의 댓글