HTTP 연결 및 TCP

5984 단어 http
개술
우선 몇 개의 명 사 를 알 아 보 자 -
  • WWW (World Wide Web): 유 니 버 설 네트워크 는 대규모, 연합 식 정보 저장 소 이 고 영 어 는 웹 이 라 고 부른다.
  • HTTP (HyperText Transfer Protocol): 하이퍼텍스트 전송 언어 는 클 라 이언 트 가 왕 웨 이 네트워크 서버 에 만 웨 이 네트워크 문서 (즉 데이터 자원) 를 어떻게 요청 하 는 지 정의 합 니 다. 이것 은 만 웨 이 네트워크 의 신뢰성 있 는 교환 파일 의 기초 입 니 다. 모든 만 웨 이 네트워크 는 하나의 서비스 프로 세 스 가 있 습 니 다. TCP 의 포트 80 을 계속 감청 하여 클 라 이언 트 가 연결 요청 을 하 는 것 을 발견 할 수 있 도록 합 니 다.연결 구축 요청 을 감청 하고 TCP 연결 을 만 든 후 클 라 이언 트 는 유 니 버 설 네트워크 서버 에 자원 데 이 터 를 가 져 오 라 고 보 내 고 서버 는 이 어 모든 요청 데 이 터 를 되 돌려 응답 하 며 TCP 연결 이 풀 렸 다.

  • HTTP 연결 은 TCP 연결 을 사용 합 니 다.
    내용.
    1. TCP 연결
    TCP, 즉 전송 제어 프로 토 콜 입 니 다. 이것 은 TCP / IP 시스템 의 프로 토 콜 중 하나 입 니 다.
  • TCP 는 연결 을 위 한 운송 층 프로 토 콜 로 TCP 프로 토 콜 을 사용 하기 전에 반드시 TCP 연결 을 구축 해 야 하 며 데이터 전송 이 끝 난 후에 이미 구 축 된 TCP 연결 을 방출 해 야 한다.
  • 모든 TCP 연결 은 두 개의 점 만 있 을 수 있 고 모든 TCP 연결 은 점 대 점 만 있 을 수 있다.
  • TCP 는 신뢰 할 수 있 는 서 비 스 를 제공 하고 TCP 연결 을 통 해 데 이 터 를 전송 하 며 오류 가 없고 잃 어 버 리 지 않 으 며 중복 되 지 않 으 며 순서대로 도착 합 니 다.
  • TCP 는 양 방향 통신 을 제공 하여 통신 쌍방의 응용 프로 세 스 가 언제든지 데 이 터 를 보 내 고 받 을 수 있 도록 합 니 다. 또한 TCP 연결 의 양 끝 에는 전송 캐 시 와 수신 캐 시가 설치 되 어 있 습 니 다.
  • 바이트 흐름 을 향 해.TCP 의 '흐름' 은 프로 세 스 로 유입 되 거나 프로 세 스에 서 흘러 나 오 는 바이트 시퀀스 를 말 합 니 다.

  • TCP 는 HTTP 에 신뢰 할 수 있 는 비트 전송 파 이 프 를 제공 합 니 다. TCP 에서 한 끝 에 연 결 된 바이트 가 다른 한 끝 에서 원래 의 순서 로 정확하게 전 송 됩 니 다.HTTP连接及TCP_第1张图片
    TCP 흐름 은 IP 그룹 으로 전송 되 며, IP 그룹 (또는 IP 데이터 보고) 이라는 작은 데이터 블록 을 통 해 전 송 됩 니 다.
    1.1 TCP 의 연결
    TCP 는 연결 을 가장 기본 적 인 추상 으로 삼 는 다.모든 TCP 에는 두 개의 단점 이 있 는데 이 연결 의 단점 을 소켓 이나 플러그 라 고 하 는데 포트 번호 가 IP 주소 에 연결 되면 소켓 을 구성한다.
       socket = (IP  :   )
    

    모든 TCP 연결 은 통신 양 끝 에 있 는 두 개의 점 (즉 두 개의 소켓) 에 의 해 유일 하 게 확정 된다.즉:
    TCP   ::={socket1:socket2} = {(IP1:port1),(IP2:port2)}
    
  • TCP 의 연결 구축: 번호 (seq): TCP 연결 에서 전 송 된 바이트 흐름 의 모든 바이트 가 순서대로 번 호 를 매 깁 니 다. 첫 번 째 번호 필드 는 본 신문 에서 보 낸 데이터 의 첫 번 째 바이트 번 호 를 뜻 합 니 다.확인 번호 (ack): 상대방 의 다음 메시지 세그먼트 의 첫 번 째 데이터 바이트 번 호 를 받 기 를 기대 합 니 다. 즉, 확인 번 호 는 발송 자가 다음 에 보 낸 메시지 세그먼트 의 번호 (seq) 와 같 습 니 다.번호 가 N 인 것 을 확인 하면 우리 측은 N - 1 까지 의 모든 데 이 터 를 정확하게 받 았 음 을 나타 낸다.확인 (ACK): ACK 가 1 일 때 만 확인 번호 (ack) 가 유효 합 니 다. 연결 이 만들어 지면 데 이 터 를 보 내야 하기 때문에 연결 이 만들어 진 후 전 송 된 모든 메시지 세그먼트 ACK 는 1 이 어야 합 니 다.동기 화 번호 (SYN): SYN = 1, ACK = 0 은 연결 을 요청 하 는 메시지 세그먼트 임 을 나타 내 고 SYN = 1, ACK = 1 은 연결 에 동의 하 는 메시지 세그먼트 임 을 나타 낸다.종료 (FIN): FIN = 1 시 이 메시지 세그먼트 의 발송 자의 데이터 가 전송 되 었 음 을 나타 내 며 연결 을 풀 어 달라 고 요구 합 니 다.HTTP连接及TCP_第2张图片 A 는 주동 적 으로 연결 을 열 었 고 B 는 수 동적 으로 연결 을 열 었 다.B 서버 가 전송 제어 모듈 TCB 를 만 든 후 LISHEN 상태 에서 클 라 이언 트 요청 을 기다 리 고 있 습 니 다.A 의 클 라 이언 트 프로 세 스 도 먼저 전송 제어 모듈 을 만 든 다음 에 b 에 요청 메 시 지 를 보 냅 니 다. 이때 첫 번 째 동기 화 비트 syn = 1 을 선택 하고 초기 화 시퀀스 번호 seq = x 를 선택 하 십시오.SYN 메시지 구간 은 데 이 터 를 휴대 할 수 없 지만 번 호 를 소모 해 야 합 니 다.B 는 연결 요청 메 시 지 를 받 고 연결 구축 에 동의 하면 A 에 게 확인 메 시 지 를 보낸다.확인 메시지 에서 SYN 비트 와 ACK 비트 를 모두 1 로 설정 하고 사람 번 호 는 ack = x + 1 이 며 자신 을 위해 초기 번호 seq = y 를 선택 합 니 다.이 메시지 단락 도 데 이 터 를 휴대 할 수 없 지만, 마찬가지 로 하나의 번 호 를 소모 해 야 한다.이때 TCP 서버 프로 세 스 가 SYN - RCVD 상태 로 들 어 갑 니 다.TCP 클 라 이언 트 프로 세 스 가 B 의 확인 을 받 은 후에 B 에 게 확인 을 해 야 합 니 다.메시지 세그먼트 의 ACK 설정 1, 확인 번호 ack = y + 1, 자신의 번호 seq = x + 1 을 확인 합 니 다.ACK 의 메시지 세그먼트 는 데 이 터 를 휴대 할 수 있 지만 데 이 터 를 휴대 하지 않 으 면 시리 얼 번 호 를 소모 하지 않 기 때문에 다음 데이터 메시지 세그먼트 의 번호 seq = x + 1. 이때 TCP 연결 이 구축 되 었 고 A 는 ESTABLISHED (연결 되 었 음) 상태 에 들 어 갔다.B 가 A 의 확인 을 받 은 후에 도 ESTABLISHED 상태 에 들 어 갔다.

  • 왜 두 번 이 아니 라 세 번 의 악 수 죠?부적 절 한 예 를 들 어 남 자 는 여자 에 게 사 귀 라 는 편 지 를 보 냈 다. 편지 가 어떤 이유 로 체류 가 지연 되 었 고 남 자 는 답장 을 기다 리 느 라 애 를 먹고 포기 하려 고 했 으 나 여 자 는 나중에 이 편 지 를 받 고 남자 에 게 사 귀 는 것 을 확인 하 는 편 지 를 보 냈 다.여기 서 악 수 를 세 번 하지 않 는 다 면 여자 가 확인 만 하면 사 귈 수 있다 는 것 을 묵인 하지만 남 자 는 대답 을 포기 하고 여 자 는 남자 가 사랑 의 편 지 를 보 내 기 를 기다 리 며 꽃 이 다 질 때 까지 기 다 렸 다.세 번 째 악 수 를 한다 면 이곳 여 자 는 남자 가 확인 요청 을 한 후에 야 사 귀 는 것 에 동의 하고 사랑 을 기다 리 지 않 는 다.
  • TCP 의 연결 해제: HTTP连接及TCP_第3张图片 A 와 B 는 모두 ESTABLISHED 상태 에 있 습 니 다. A 의 응용 프로 세 스 는 먼저 응용 프로 세 스에 연결 을 보 내 메시지 세그먼트 를 보 내 고 데 이 터 를 보 내 는 것 을 중단 하 며 TCP 연결 을 자발적으로 닫 습 니 다.A. 메시지 세그먼트 의 첫 번 째 종료 제어 위치 1 을 연결 합 니 다. 그 번호 seq = u 는 앞에서 전 송 된 데이터 의 마지막 바이트 번호 에 1 을 추가 하 는 것 과 같 습 니 다. 이때 A 는 FIN - WAIT - 1 (종료 대기 1) 상태 에 들 어가 B 확인 을 기다 리 고 있 습 니 다.B. 연결 해제 메시지 세그먼트 를 받 은 후 즉시 확인 번 호 를 보 냅 니 다. 확인 번 호 는 ack = u + 1 입 니 다. 이 메시지 세그먼트 의 자신의 번 호 는 v 입 니 다. B 앞에서 전 송 된 데이터 의 마지막 바이트 의 시리 얼 번호 에 1 을 더 한 다음 에 B 는 CLOSE - WAIT (닫 기 대기) 상태 에 들 어 갑 니 다.B. 고 층 응용 프로 세 스 를 알 리 기 때문에 A 에서 B 까지 의 연결 이 풀 립 니 다. 이때 TCP 는 반 닫 힌 상태 입 니 다. 즉, A 는 보 낼 데이터 가 없 지만 B 가 데 이 터 를 보 내 면 A 는 받 아야 합 니 다.A 는 B 로부터 확인 을 받 고 FIN - WAIT - 2 (대기 중지 1) 상태 로 들 어가 B 가 석방 메 시 지 를 보 낼 때 까지 기다린다.B 가 A 에 게 보 낼 데이터 가 없 으 면 응용 프로 세 스 는 TCP 에 연결 을 해제 하 라 고 알 립 니 다. 이때 B 가 보 낸 연결 메시지 세그먼트 FIN = 1, 현재 B 의 번호 w (반 닫 힌 상태 에서 B 가 데 이 터 를 보 냈 을 수도 있 습 니 다), B 는 지난번 에 보 낸 확인 번호 ack = u + 1 을 반복 해 야 합 니 다. 이때 B 는 LAST - ACK (마지막 확인) 상태 에 들 어가 A 의 확인 을 기 다 려 야 합 니 다.A 는 B 의 연결 해제 메시지 세그먼트 를 받 은 후에 반드시 확인 을 보 내야 한다. 확인 메시지 에 ACK 가 1 을 설치 하고 확인 번 호 는 ack = w + 1 이 며 자신의 번 호 는 seq = u + 1 이다.그리고 TIME - WIT 상태 로 들 어 갑 니 다.이때 TCP 연결 이 풀 리 지 않 아 타이머 (TIME - WIT timer) 가 설정 한 시간 2MSL 을 기 다 려 야 A 가 CLOSED 상태 로 들 어 갑 니 다.MSL 을 최 장 메시지 세그먼트 수명 이 라 고 합 니 다.
  • 좋은 웹페이지 즐겨찾기