IP 데이터그램의 단편화 및 조립 원리는 무엇입니까?
한 호스트가 다른 호스트로 데이터를 보낼 때 데이터는 여러 라우팅 계층을 통해 전달되어야 합니다. 라우팅 계층에서 IP 전달 프로세스는 상대적으로 복잡합니다. 대상 호스트가 보낸 데이터그램을 처리하는 방법은 무엇입니까?
먼저 데이터그램의 형식을 이해해야 합니다.
IP 전달 및 제어는 IP 데이터그램의 헤더에 의해 결정됩니다.
4비트 헤더 길이의 값은 4바이트 단위입니다. 최소값은 5이며, 이는 최소 헤더 길이가 4x5=20바이트이며, 이는 옵션이 없는 IP 헤더임을 의미합니다. 4비트 에너지 테이블이 나타내는 최대값은 15이며, 이는 최대 헤더 길이를 의미합니다. 섹션
8비트 TOS 필드에는 IP 데이터그램의 우선순위(현재는 사용되지 않음)를 지정하는 데 사용되는 3비트와 최소 지연, 최대 처리량 및 최대 신뢰성을 포함하여 선택 사항을 나타내는 4비트가 있습니다. 서비스 유형 성별 및 최소 비용이며 총 비트는 항상 0입니다. 총 길이 16비트는 전체 데이터그램(IP 헤더 및 IP 계층 페이로드 포함)의 바이트 수입니다. IP 데이터그램이 전송될 때마다 16비트 식별자는 1씩 증가하며, 이는 데이터그램을 조각화하고 재조립하는 데 사용될 수 있습니다.
슬라이싱을 위한 3비트 플래그 및 13비트 슬라이스 오프셋.
TTL(Time to live)은 다음과 같이 사용됩니다. :소스 호스트는 데이터 패킷의 생존 시간을 64와 같이 설정합니다. 라우터
를 통과할 때마다 값이 1씩 감소합니다. 시간이 지나도 목적지 호스트의 네트워크를 찾지 못하면 해당 패킷은 폐기됩니다. 따라서 이 생존 시간의 단위는 초가 아닌 홉입니다.
프로토콜 필드는 상위 계층 프로토콜이 TCP, UDP, ICMP 또는 IGMP인지 여부를 나타냅니다. 그리고 IP 헤더만 확인하는 체크섬이 있습니다. 데이터 확인은 상위 계층 프로토콜에 의해 처리됩니다.
IPv4의 IP 주소 길이는 32비트입니다.
IP 데이터그램에서 전체 길이는 16비트 필드이고 데이터그램의 최대 길이는 2^16-1입니다. 가능한 가장 긴 데이터그램이 전송 효율성을 향상시킬 수 있지만 1500바이트를 초과하는 경우는 거의 없습니다. 여기서는 1500바이트를 초과하므로 이 데이터그램을 조각화해야 한다고 간주됩니다. IP 데이터그램이 조각화되면 각 조각은 IP 헤더로 패킷을 형성하고 독립적으로 라우팅됩니다. 대상 호스트에 도착한 후 대상 호스트의 IP 계층은 조각을 전송 계층으로 전송하기 전에 수신된 모든 조각을 처리합니다. 데이터그램으로 재조립됩니다.
1. IP 조각화
1. IP 조각화 원리:
조각화 및 재조립 과정은 전송 계층에 투명합니다. 그 이유는 IP 데이터그램이 조각화된 후에만 다음 스테이션에 도달할 수 있기 때문입니다. 조각화된 데이터그램은 필요에 따라 다시 조각화될 수 있습니다.
IP 조각과 전체 메시지는 거의 동일한 IP 헤더, ID 필드 쌍을 갖습니다. 미국과 영국 조각은 일관성이 있습니다. 동일한 IP 데이터 패킷 조각이 조립 중에 식별될 수 있도록 합니다. IP 헤더에서 16비트 식별 번호는 IP 패킷의 ID를 고유하게 기록하고 동일한 ID를 가진 IP 조각이 재조립되는 반면 13비트 조각 오프셋은 전체 패킷에 대한 IP 조각의 위치를 기록합니다. ; 두 테이블 중간에 있는 3비트 플래그는 이 조각 뒤에 새 조각이 있는지 여부를 표시합니다. 수신기는 IP 조각화를 구성하는 모든 정보인 이 세 가지 필드에 제공된 정보를 사용하여 IP 데이터를 재조립할 수 있습니다.
(1) 플래그 필드의 역할
0 DF MF
플래그 필드에는 세 자리 숫자가 있으며, 가장 높은 비트는 0이며, 이 값은 모든 그룹에 복사되어야 합니다.
Do not Fragment(DF) 값은 다음과 같아야 합니다. 복사되었습니다. DF=1은 수신 호스트가 패킷을 조각화할 수 없음을 의미합니다. 패킷을 조각화할 수 없지만 길이가 MTU를 초과하는 경우 패킷을 삭제할 수만 있으며 소스 호스트에 알리기 위해 ICMP 오류 메시지를 사용해야 합니다. DF=0은 조각화될 수 있음을 의미합니다.
Fragmentation(MF)은 조각이 마지막 조각인지 여부를 나타내고, MF=1은 허용된 조각이 마지막 조각이 아님을 의미하며, MF=0은 허용된 조각이 마지막 조각임을 의미합니다. 모든 조각 대신 일부 IP 조각을 의도적으로 보내면 대상 호스트는 항상 조각이 소비되고 시스템 리소스를 차지할 때까지 기다리게 됩니다.
2. MTU(최대 전송 단위) 원리
두 개의 원격 CP가 상호 연결되면 해당 데이터가 반대쪽 끝에 도달하기 위해 많은 라우터와 다양한 네트워크 미디어를 통과해야 합니다
, 네트워크의 미디어가 다릅니다. MTU는 다릅니다. 서로 다른 두께(다른 MTU)의 수도관으로 구성된 긴 수도관 부분과 같습니다. 이 수도관 부분을 통과하는 물의 최대량은 중간에 있는 가장 얇은 수도관에 의해 결정됩니다.
네트워크 계층의 상위 계층 프로토콜(여기서는 TCP/IP 프로토콜 클러스터를 예로 들겠습니다)의 경우 수도관의 두께는 네트워크의 문제라고 생각하기 때문에 신경 쓰지 않습니다. 네트워크 계층에서 IP 프로토콜은 상위 계층 프로토콜에서 전송되는 각 데이터 패킷의 크기를 감지하고 시스템의 MTU 크기를 기반으로 조각화가 필요한지 여부를 결정합니다. 샤딩의 가장 큰 단점은 전송 성능이 저하되고, 한 번 완료할 수 있는 작업을 여러 프로세스로 나누어야 한다는 점입니다. 따라서 네트워크의 상위 계층(전송 계층 구현)은 종종 이에 주의를 기울입니다. 일부 상위 계층에서는 어떤 이유로 패킷을 조각화할 수 없도록 요구할 수 있으며 인덱스는 IP 헤더에 레이블을 추가하기 때문입니다. datagram. :DF IP 데이터 패킷이 대규모 네트워크 세그먼트를 통해 전송될 때 MTU가 데이터 패킷보다 작으면 전달 장치는 상황에 따라 데이터 패킷을 삭제합니다. 그러면 송신자에게 오류 메시지가 반환되는데, 이로 인해 종종 통신 문제가 발생합니다. 다행스럽게도 대부분의 네트워크 링크 MTU는 1500 이상입니다. UDP의 경우 프로토콜 자체는 데이터 패킷의 도착 순서에 상관이 없습니다. 정확하므로 일반적으로 UDP에는 조각화에 대한 요구 사항이 많지 않습니다. 이 프로토콜은 연결 지향 프로토콜입니다. TCP의 경우 데이터 패킷의 도착 순서에 매우 관심이 있습니다. 전송 프로세스 중에 오류가 발생하므로 일부 TCP 애플리케이션에는 조각화에 대한 요구 사항이 있습니다---조각화될 수 없습니다
3.MSS(최대 세그먼트 길이) 원칙
MSS는 TCP 패킷이 매번 가질 수 있는 데이터의 양입니다. 최상의 전송 성능을 달성하기 위해 TCP 프로토콜은 일반적으로 연결을 설정할 때 양쪽 당사자의 MSS 값을 협상합니다. 이 값은 TCP 프로토콜이 구현될 때 MTU로 대체됩니다. IP 데이터 패킷) 20비트 및 TCP 데이터 세그먼트 헤더 20BITES)이므로 MSS 크기는 대개 1460입니다. 양 당사자는 제공된 최소 MSS 값을 기반으로 이 연결의 최대 MSS 값을 결정합니다
II IP 조각화 단계
.조각화되지 않은 데이터그램 조각화 정보 필드는 모두 0입니다. 즉, 여러 조각화 플래그는 0이고 오프셋은 0입니다. 데이터그램을 조각화하려면 다음 단계를 거쳐야 합니다
(1) DF 플래그를 확인하여 조각화가 허용되는지 확인하세요. 이 비트가 설정되면 데이터그램이 삭제되고 ICMP 오류가 소스에 반환됩니다.
(2) MTU 값에 따라 데이터 필드는 두 부분 또는 쌍으로 나뉩니다. 마지막 데이터 부분을 제외하고 모두 새로운 데이터 옵션 길이는 8바이트의 배수여야 합니다
(3) 각 데이터는 IP 데이터그램에 들어가고, 이 데이터그램의 헤더는 원래 헤더를 약간 변경합니다
(4) 마지막 데이터그램을 제외하고 모든 조각에는 여러 조각화 플래그가 설정되어 있습니다. (5) 각 조각의 조각 오프셋 필드는 원본 데이터그램의 이 데이터 부분이 차지하는 위치로 설정됩니다. 조각화되지 않은 원본 데이터그램.
(6) 원본 데이터그램에 옵션이 포함된 경우 옵션 유형 바이트의 상위 바이트에 따라 이 정보가 모든 조각화된 데이터그램에 복사되는지 아니면 첫 번째 데이터그램에만 복사되는지가 결정됩니다.(7) 새 데이터그램의 헤더 필드와 전체 길이 필드를 설정합니다.
(8) 메시지 헤더의 체크섬 필드를 다시 계산합니다. 이때 이러한 조각난 데이터그램은 완전한 IP 데이터그램처럼 전달됩니다. IP는 각 데이터그램 조각을 독립적으로 처리합니다. 데이터그램 조각이 해당 규정을 통과하면 더 작은 경로를 통해 목적지에 도달할 수 있습니다대상 호스트에서 데이터는 원본 데이터그램으로 재조립되고 송신 호스트가 설정한 식별 필드와 위안 IP 주소 및 데이터그램의 대상 IP 주소가 함께 사용되며 조각화 프로세스는 이 필드를 변경하지 않습니다
3. 재조립
이러한 데이터그램의 조각을 재구성하기 위해 수신 호스트는 첫 번째 조각이 도착할 때 저장 버퍼를 할당합니다. 이 호스트는 타이머도 시작합니다. 데이터그램의 후속 조각이 도착하면 데이터는 조각 오프셋으로 지정된 위치의 버퍼 메모리에 복사되고, 모든 조각이 도착하면 조각화되지 않은 완전한 원본 데이터그램이 복원됩니다.
타이머가 만료되고 샤드가 승인되지 않은 상태로 남아 있으면 데이터가 유지되지 않습니다. 이 타이머의 초기 값은 IP 데이터그램의 수명 값입니다. 이는 구현에 따라 다르며 일부 구현에서는 이를 구성할 수 있습니다.
재조립 단계
수신 측에서는 보낸 사람이 보낸 원본 데이터 IP 패킷이 상위 계층 프로토콜에 제출되기 전에 모든 조각을 재조립합니다. 재조립할 각 IP 데이터그램은 ipq 구조를 사용하여
In을 나타냅니다. 조각 집합을 효과적으로 개선하려면 조각 저장에 사용되는 구조가 다음 사항을 달성해야 합니다.
(1) 특정 데이터그램의 패킷 그룹을 빠르게 찾습니다.
(2) 특정 데이터그램에 속합니다. 데이터그램의 조각 집합
(3) 데이터그램의 모든 조각이 수신되었는지 효과적으로 확인합니다
(4) 재조립 시간 초과 메커니즘이 있습니다. 시간 초과가 만료되면 데이터그램의 모든 내용이 삭제되세요
위 내용은 IP 데이터그램의 단편화 및 조립 원리는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











1. 블랙/화이트 목록 IP 제한 액세스 구성 nginx 블랙 목록과 화이트 목록을 구성하는 방법에는 여러 가지가 있습니다. 다음은 일반적으로 사용되는 두 가지 방법입니다. 1. 첫 번째 방법: 허용, 거부 및 허용 명령은 ngx_http_access_module에 속합니다. nginx는 기본적으로 이 모듈을 로드하므로 직접 사용할 수 있습니다. 이 방법은 가장 간단하고 직접적입니다. 설정은 방화벽 iptable과 유사합니다. 사용 방법: 구성 파일에 직접 추가: #Whitelist 설정, 이어서 허용 가능 IPlocation/{allow123.13.123.12;allow23.53.32.1/100;denyall;}# 블랙리스트 설정,

IP 및 MAC 바인딩은 특정 IP 주소를 특정 MAC 주소와 연결하여 해당 MAC 주소를 사용하는 장치만 네트워크 통신에 IP 주소를 사용할 수 있도록 하는 것을 의미합니다. ip와 mac을 바인딩하면 바인딩된 호스트의 IP 주소가 스푸핑되는 것을 방지할 수 있습니다. 전제 조건: 1. MAC 주소는 고유하며 스푸핑될 수 없습니다. 즉, 라우터에 직접 연결된 네트워크의 호스트에만 바인딩할 수 있습니다. 호스트의 게이트웨이는 라우터에 있습니다).

WeChat에서 IP 주소를 확인하는 방법: 1. 컴퓨터 버전의 WeChat에 로그인하고 화면 하단의 작업 표시줄을 마우스 오른쪽 버튼으로 클릭한 후 "작업 관리자"를 클릭합니다. 2. 작업 관리자가 나타나면 " 3. 작업 관리 브라우저의 "성능" 옵션을 입력하고 "리소스 모니터 열기"를 클릭합니다. 4. "네트워크"를 선택하고 "Wechat.exe" WeChat 프로세스를 확인합니다. 5. "를 클릭합니다. TCP 연결'을 통해 위챗 네트워크 IP 관련 상황을 모니터링할 수 있다. 메시지를 보내고 답장을 받으면 상대방의 IP 주소가 공개된다.

1. 디렉터리 화이트리스트 설정: 지정된 요청 경로에 제한이 없습니다. api 디렉터리에 대한 요청 경로에 제한이 없으면 server{location/app{proxy_passhttp://192.168.1.111로 작성할 수 있습니다. 8095/app ;limit_connconn20;limit_rate500k;limit_reqzone=fooburst=5nodelay;}location/app/api{proxy_passhttp://192.168.1.111:8095/app/api}}#왜냐하면 nginx는 정확한 매칭에 우선순위를 두기 때문입니다

소개 nginx가 역방향 프록시로 사용될 때 기본 구성 백엔드에서 얻은 IP 주소는 nginx에서 가져옵니다. 사용자의 실제 IP가 아닌 nginx의 IP 주소를 얻으려면 request.getRemoteAddr()을 사용하십시오. 서버{listen80;server_namejenkins.local.com;location/{proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_passhttp://192.168.10.

이 컴퓨터의 IP 주소를 쿼리하는 방법은 다음과 같습니다. 1. Windows 시스템에서 "시작 메뉴"를 열고 "cmd"를 검색하여 명령 프롬프트를 열고 "ipconfig"를 입력한 다음 Enter 키를 눌러 주소를 찾습니다. "IPv4 주소"라는 줄 옆에 있는 숫자는 기기의 IP 주소입니다. 2. macOS 시스템에서 화면 왼쪽 상단에 있는 Apple 아이콘을 클릭하고 "시스템 환경설정"을 선택한 다음 현재 연결된 네트워크를 찾습니다. "네트워크" 옵션에서 "고급" 버튼을 클릭하고 "TCP/IP" 탭 등에서 기기의 IP를 찾으세요.

IP 할당이 표시되지 않는 Wi-Fi에 대한 해결 방법: 1. 장치와 라우터를 다시 시작하고, 장치에서 Wi-Fi 연결을 끄고, 장치를 끄고, 라우터를 끄고, 몇 분간 기다린 다음 라우터를 다시 열어 Wi-Fi에 연결합니다. 2. 라우터 설정을 확인하고 DHCP 기능이 활성화되어 있는지 확인하십시오. 3. 네트워크 설정을 재설정하면 이 작업을 수행하기 전에 백업되었는지 확인하십시오. 라우터 펌웨어를 확인하고 라우터 관리 인터페이스에 로그인한 후 펌웨어 업데이트 옵션을 찾아 메시지를 따르세요.

개념: uv(순방문자): 고유 방문자, 인터넷에 연결된 각각의 독립적인 컴퓨터(쿠키 기반)는 방문자로 간주되며, 하루(00:00-24:00) 동안 귀하의 웹사이트를 방문한 방문자 수입니다. 하루 동안 동일한 쿠키에 대한 방문은 pv(페이지뷰) 한 번만 계산됩니다. 즉, 방문수, 즉 페이지 조회수 또는 클릭수, 사용자의 각 웹사이트 방문은 한 번 기록됩니다. 사용자가 동일한 페이지를 여러 번 방문할 경우 총 방문 횟수가 계산됩니다. 독립 IP: 동일한 IP 주소가 00:00~24:00 내에 한 번만 계산됩니다. 웹사이트 최적화를 하는 친구들이 이를 가장 걱정합니다. 먼저 환경을 설명하겠습니다. 이것은 nginx 버전 1.7을 실행하고 백엔드 tomcat은 동적으로 실행됩니다.
