HTTP/2 카페 TCP 연결 기법 확립 - 오후
5951 단어 AP 시험 학습 기록
파일: 2019r01aap_pm_qs.오후
시스템 성능 요구 사항
1、
소켓
서버와 브라우저가 TCP/IP를 통해 통신하는 데 필요한 것은 서버의 소켓입니다.
서버 소켓에 허용되는 최대 수를 설정합니다.테마를 128로 설정합니다.
포트 및 소켓
프로그램에서 포트를 사용하여 통신을 하기 위해서는 일반적으로 플러그라고 불리는 메커니즘을 사용한다(플러그는 BSD가 개발한 것이기 때문에 특히 BSD 플러그라고 부른다).소켓은 통신의 단점으로 두 컴퓨터가 통신하고 있을 때 통신 경로의 양쪽, 즉 모든 컴퓨터에 소켓이 존재한다.또 콘센트의 인터페이스와 플러그인을 처리하는 프로그램 라이브러리도 함께 플러그인이라고 할 수 있다.
소켓을 사용하는 통신은 다음과 같은 순서에 따라 진행된다.
서버에서 서비스를 제공하는 프로그램에서 콘센트를 만들고 서비스 고유의 포트 번호를 콘센트(bind)에 분배하며 대기열(listen)을 준비하고 고객의 연결(accept)을 기다립니다.
서비스의 클라이언트 프로그램을 이용하여 플러그인을 만들고 이 플러그인의 통신 대상으로 서버기의 IP 주소와 서비스의 포트 번호(connect)를 지정하여 연결한다.
서버는 연결을 받을 때 새로운 플러그인을 만들고 플러그인과 클라이언트 간에 통신을 합니다.원래는 감청실로 다시 돌아왔다.
통신 종료 후그리고생성된 소켓은 버려집니다.
이런 절차에 따라 통신하는 프로그램의 형식을 플러그인 프로그래밍이라고 부른다.
2、
①브라우저에서 사용하는 여러 파일을 동시에 받는 방법은?
파일을 통한 TCP 연결 및 전송
→
여러 TCP 연결을 동시에 설정하는 방법
3. TCP 연결 설정
TCP 연결 구축 절차는 (※ 3방향 악수)
· PC에서 서버로 Syn 그룹 전송
• 서버에서 PC로 Syn/ack 응답
● PC에서 서버로 Ack 전송
· TCP 접속 구성
※ 패킷은 데이터 통신에 세분화된 데이터
※ 악수는 왜 세 번 해야 하는가
1. 배달 가능한가요?
2.좋아!배달 가능한가요?
3.좋아!
를 세 번 교환해 연결을 맺었다.
그때 교환한 데이터는요.
1. "SYN = 1, ACK=0"패킷→SYN PC 서버로 전송
2. "SYN = 1, ACK=1"패킷 → SYN/ACK 서버가 PC에 전송
3. "SYN = 0, ACK=1"그룹→ACK PC에서 서버로
네.
나는 왜 두 단계로 나누어 해결하지 않는지 매우 큰 의문이 있다...
1. "SYN=1, ACK=1"패킷 → SYN PC에서 서버로 발송 가능, 발송 가능한가요?
2. "SYN=1, ACK=1"패킷 → SYN/ACK 서버가 PC에 전송하면 됩니다!
억지로 생각하면
• PC에서 서버로 1과 2가 전송되는지 확인하기 위해
· 2와 3이 서버에서 PC로 전송되는지 확인하기 위해
그래?
1 예를 들어 컴퓨터에 보낼 수 있다고 해도 정말입니까?서버가 몰라서요.이 세 걸음을 통해 양측이 모두 수발을 하여 연결을 맺었다.
3、그렇다면 SYN/ACK 등은 도대체 무엇일까요?
이것은 모두가 TCP 연결 통신을 제어하는 표지이다.
TCP는 헤더 정보에'표지'라고 불리는 6개의 정보를 가지고 있다(그림1).이 로고는 TCP가 신뢰할 수 있게 상대방과 통신하는 데 사용되는 제어 정보로, 통신 절차를 점검하거나 전송된 데이터의 수신 등을 확인하는 데 쓰인다.각 로고는 1비트의 정보로 이 로고가 가진 의미를 알리고자 할 때'1'을 설정하고 그렇지 않으면'0'이 된다.
URG(Urgent) 플래그는 즉시 처리하고 싶은 긴급 데이터가 있음을 나타내는 플래그입니다.긴급 데이터가 있는 경우 URG 플래그에'1'을 설정하고 긴급 포인터에 긴급 데이터의 크기를 설정합니다.
두 번째 ACK(Acknowledge) 표시는 응답 번호(이하 ACK 번호, 38페이지 참조)를 확인하는 데 유효한 표시다.TCP의 통신을 시작할 때는 최초 그룹을'0'으로 설정한 뒤 통신이 끝날 때까지'1'을 설정하고 머리 안에 유효한 ACK 번호를 설정한다.
세 번째'PSH(Push)'로고는 받은 데이터를 고급 애플리케이션에 신속하게 전달할 것을 요청하는 데 사용되는 로고이다.수신측의 처리를 촉진하고 응답 성능을 향상시키는 데 주로 쓰인다.텔넷에서 문자를 보낼 때 PSH에서 1이 설정됩니다.
네 번째 RST(Reset) 플래그는 TCP 연결을 강제로 끊을 때(초기 상태로 돌아가는) 플래그입니다.웹 브라우저에서 파일을 다운로드할 때 중지 버튼을 누르거나 웹 브라우저를 종료할 때 RST를 1로 설정한 패키지를 보냅니다.
다섯 번째'SYN(Synchronize)'로고는 TCP 연결을 위한 로고입니다.
마지막 FIN(Finish) 플래그는 TCP 연결을 종료하는 일반적인 절차에 사용되는 플래그입니다.
4. 포트
자주 사용하는 항목:
25 SMTP
110 POP
443 HTTPS(SSL 통신)
80 HTTP
5. TCP 연결 내의 브라우저와 서버 간의 통신
우선, 간단하지만 TCP 연결을 통해 서버에 여러 파일을 요청할 수 있습니다.
HTTP/1.1 over TLS를 사용하여 통신 + 브라우저의 HTTP 파이프라인을 끄는 경우
서버에 파일 요청 및 가져오기
테마 이미지에서 볼 수 있는 것은 다음과 같습니다.
본제 통신 전체도
현재 사용 중인 HTTP/1.1 over TLS
· 여러 TCP 접속 구성
• 그러나 TCP 구축에 사용된 소켓이 서버에서 고갈되어 TCP 구축 요청이 많이 거부되었습니다
· 다른 한편, 한 TCP에서 파일은 순서대로 요청하고 하나를 얻는다.
따라서 이미지가 많은 화면에서는 느려져 시스템 성능을 만족시킬 수 없다.
해결책
HTTP/2를 사용한다고 합니다.
HTTP/2에는 하나의 TCP로 연결해 여러 파일을 동시에 받는 흐름이라는 구조 등 새로운 구조가 많이 추가됐다.
그럼, 절약한 시간은 접수가 끝나기 전의 서류를 기다리는 시간이죠.
개선된 HTTP/2에 따라 새 시스템이 허용할 수 있는 최대 동시 액세스 수는 얼마입니까
액세스 하나에 TCP 연결이 충분하기 때문에 기본적으로 TCP 연결과 수량이 같습니다.소켓은 최대 128개, 최대 동시 액세스 수는 128개입니다.
그러나 CPU, 메모리, 네트워크 회선, 디스크 I/O 로드율도 주의해야 합니다.테마에서 32명의 사용자
CPU 10%
메모리 10%
네트워크 회선 10%
디스크 I/O 로드율 20%
따라서 32명의 사용자 X5 = 160명의 사용자도 서버를 감당할 수 있다.
그러나 서버 소켓은 최대 128개, 사용자 128명이 정확합니다.
참조:
포트 및 소켓
https://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%BC%E3%83%88_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF)
TCP 연결 설정
https://milestone-of-se.nesuke.com/nw-basic/grasp-nw/example-of-http/
패킷
https://wa3.i-3-i.info/word176.html
삼자가 악수하다.
https://wa3.i-3-i.info/word15428.html
통신을 제어하는 표지
https://ascii.jp/elem/000/000/619/619702/
포트 번호
https://jp.globalsign.com/support/faq/345.html
Reference
이 문제에 관하여(HTTP/2 카페 TCP 연결 기법 확립 - 오후), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/lymansouka2017/items/2d2e78a37b9f1f8fb3a0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)