TCP 패킷 번호 지정이 재전송을 더 쉽게 만드는 방법은 무엇입니까?

울트라 스마트

저자는 TCP를 설명하는 Python 네트워크 프로그래밍에 대한 평판이 좋은 책 (질문을 책의 광고로 생각하지 않는 제목은 언급하지 않음)에서 다음과 같이 썼습니다.

순차 정수 (1, 2, 3 ...)를 사용하여 패킷을 시퀀스하는 대신 TCP는 전송 된 바이트 수를 계산하는 카운터를 사용합니다. 예를 들어, 시퀀스 번호가 7,200 인 1,024 바이트 패킷 뒤에는 시퀀스 번호가 8,224 인 패킷이옵니다. 이는 바쁜 네트워크 스택이 데이터 스트림을 패킷으로 분리하는 방법을 기억할 필요가 없음을 의미합니다. 재전송을 요청하면 스트림을 다른 방법으로 새 ​​패킷으로 나눌 수 있으며 (이제 더 많은 바이트가 전송을 기다리고있는 경우 패킷에 더 많은 데이터를 넣을 수 있음) 수신자는 패킷을 다시 함께 넣을 수 있습니다.

어떻게 그 번호 지정 패턴 (모든 시퀀스 패킷에 1을 추가하는 대신 패킷의 바이트 수를 세는 것)이 송신자가 패킷을 더 쉽게 재전송 할 수 있도록합니까?

Martijn Pieters

본질적으로 각 바이트에 이러한 방식으로 번호가 매겨져 있으므로 이미 사용 된 상위 시퀀스 ID 에 대해 걱정할 필요없이 새 시퀀스 ID를 생성 할 수 있기 때문에 더 쉽습니다 .

처음 8,224 바이트의 전송이 성공했지만 다음 2 개의 패킷을 다시 전송해야한다고 가정 해 보겠습니다. 또한 마지막 2 개의 패킷은 최적의 크기가 아니며 길이가 2048 바이트이고 1024 바이트가 더 나은 패킷 크기입니다 (아마도 경로가 전환되었거나 다른 이유로).

패킷에 순차적으로 번호가 매겨진 경우 이미 수신 된 이후 패킷이 시리즈의 다음 번호를 이미 사용하므로이 두 패킷을 분리 할 수 ​​없습니다 . 이 두 패킷은 10과 11로 번호가 매겨 질 수 있으며, 이러한 숫자는 이미이 일련의 패킷에서 사용 되었기 때문에이를 분리하고 12와 13도 사용합니다.

그러나 8224 및 10272를 대신 사용했다면 이제 전체 시퀀스의 순서를 깨지 않고 패킷을 분할하고 시퀀스 번호 8224, 9248, 10272 및 11296을 보낼 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

더 많은 열을 더 쉽게 만드는 방법은 무엇입니까?

분류에서Dev

의사 결정 트리 규칙을 더 이해하기 쉽게 만드는 방법은 무엇입니까?

분류에서Dev

TCP 연결에 속하는 패킷을 DPDK의 특정 lcore로 보내는 방법은 무엇입니까?

분류에서Dev

TCP 패킷을 가로 채서 즉시 수정하는 방법은 무엇입니까?

분류에서Dev

TCP 재전송 : 얼마나 많은 패킷이 재전송됩니까?

분류에서Dev

Ubuntu 18.04에서 Gnome Control Center (설정) 왼쪽 패널 배경색을 호버링 할 때 더 분명하게 만드는 방법은 무엇입니까?

분류에서Dev

Coq에서 대수적 조작을 더 쉽게 만드는 방법은 무엇입니까?

분류에서Dev

HTML 코드를 더 읽기 쉽게 만드는 방법은 무엇입니까?

분류에서Dev

Windows NTFS : 보안을 쉽게 재설정하는 방법은 무엇입니까?

분류에서Dev

단일 페이지 웹 애플리케이션을 쉽게 만드는 방법은 무엇입니까?

분류에서Dev

매개 변수 목록에서 함수 호출을 쉽게 유지하는 방법은 무엇입니까?

분류에서Dev

PPA 용 패키지를 쉽게 범프하는 방법은 무엇입니까?

분류에서Dev

C ++ 데코레이터 패턴을 메모리 관리에 사용하기 쉽게 만드는 방법은 무엇입니까?

분류에서Dev

패킷을 이해하는 방법은 sharPcap을 사용하는 TCP CLOSE 패킷입니다.

분류에서Dev

팩맨 용 애니메이션을 더 쉽게 만드는 방법

분류에서Dev

tcp 패킷에서 stdout을 보내는 방법은 무엇입니까? (bash 명령 만 사용)

분류에서Dev

void-linux에서 최신 기호 및 이모티콘 지원으로 안정적인 글꼴을 쉽게 설정하는 방법은 무엇입니까?

분류에서Dev

SqlCommand의 특정 부분을 쉽게 null로 만드는 방법은 무엇입니까?

분류에서Dev

Contiki-NG의 이웃에게 유니 캐스트 패킷을 보내는 방법은 무엇입니까?

분류에서Dev

활동을 더 작게 만드는 슬라이딩 메뉴를 만드는 방법은 무엇입니까?

분류에서Dev

패킷 데이터를 안전하게 분리하는 방법은 무엇입니까?

분류에서Dev

전송을 위해 폴더를 한 번 암호화하는 방법은 무엇입니까?

분류에서Dev

UFW-더 쉽게 만드는 방법은 무엇이며 UFW가이를 가질 수있는 스텔스 포트는 무엇입니까?

분류에서Dev

이 Singleton 패턴의 스레드 안전성이 아닌 것을 쉽게 시뮬레이션하는 방법은 무엇입니까?

분류에서Dev

패킷 손실로부터 udp 패킷을 보호하는 방법은 무엇입니까?

분류에서Dev

명령 줄을 통해 이미지 크기를 쉽게 조정하는 방법은 무엇입니까?

분류에서Dev

명령 줄을 통해 이미지 크기를 쉽게 조정하는 방법은 무엇입니까?

분류에서Dev

손대지 않은 tun 패킷을 보내는 방법은 무엇입니까?

분류에서Dev

Yii-URL을 읽기 쉽게 만드는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    더 많은 열을 더 쉽게 만드는 방법은 무엇입니까?

  2. 2

    의사 결정 트리 규칙을 더 이해하기 쉽게 만드는 방법은 무엇입니까?

  3. 3

    TCP 연결에 속하는 패킷을 DPDK의 특정 lcore로 보내는 방법은 무엇입니까?

  4. 4

    TCP 패킷을 가로 채서 즉시 수정하는 방법은 무엇입니까?

  5. 5

    TCP 재전송 : 얼마나 많은 패킷이 재전송됩니까?

  6. 6

    Ubuntu 18.04에서 Gnome Control Center (설정) 왼쪽 패널 배경색을 호버링 할 때 더 분명하게 만드는 방법은 무엇입니까?

  7. 7

    Coq에서 대수적 조작을 더 쉽게 만드는 방법은 무엇입니까?

  8. 8

    HTML 코드를 더 읽기 쉽게 만드는 방법은 무엇입니까?

  9. 9

    Windows NTFS : 보안을 쉽게 재설정하는 방법은 무엇입니까?

  10. 10

    단일 페이지 웹 애플리케이션을 쉽게 만드는 방법은 무엇입니까?

  11. 11

    매개 변수 목록에서 함수 호출을 쉽게 유지하는 방법은 무엇입니까?

  12. 12

    PPA 용 패키지를 쉽게 범프하는 방법은 무엇입니까?

  13. 13

    C ++ 데코레이터 패턴을 메모리 관리에 사용하기 쉽게 만드는 방법은 무엇입니까?

  14. 14

    패킷을 이해하는 방법은 sharPcap을 사용하는 TCP CLOSE 패킷입니다.

  15. 15

    팩맨 용 애니메이션을 더 쉽게 만드는 방법

  16. 16

    tcp 패킷에서 stdout을 보내는 방법은 무엇입니까? (bash 명령 만 사용)

  17. 17

    void-linux에서 최신 기호 및 이모티콘 지원으로 안정적인 글꼴을 쉽게 설정하는 방법은 무엇입니까?

  18. 18

    SqlCommand의 특정 부분을 쉽게 null로 만드는 방법은 무엇입니까?

  19. 19

    Contiki-NG의 이웃에게 유니 캐스트 패킷을 보내는 방법은 무엇입니까?

  20. 20

    활동을 더 작게 만드는 슬라이딩 메뉴를 만드는 방법은 무엇입니까?

  21. 21

    패킷 데이터를 안전하게 분리하는 방법은 무엇입니까?

  22. 22

    전송을 위해 폴더를 한 번 암호화하는 방법은 무엇입니까?

  23. 23

    UFW-더 쉽게 만드는 방법은 무엇이며 UFW가이를 가질 수있는 스텔스 포트는 무엇입니까?

  24. 24

    이 Singleton 패턴의 스레드 안전성이 아닌 것을 쉽게 시뮬레이션하는 방법은 무엇입니까?

  25. 25

    패킷 손실로부터 udp 패킷을 보호하는 방법은 무엇입니까?

  26. 26

    명령 줄을 통해 이미지 크기를 쉽게 조정하는 방법은 무엇입니까?

  27. 27

    명령 줄을 통해 이미지 크기를 쉽게 조정하는 방법은 무엇입니까?

  28. 28

    손대지 않은 tun 패킷을 보내는 방법은 무엇입니까?

  29. 29

    Yii-URL을 읽기 쉽게 만드는 방법은 무엇입니까?

뜨겁다태그

보관