inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

모든 개발자를 위한 HTTP 웹 기본 지식

웹 브라우저 요청 흐름

3 handshake(with socket library) 관련 질문있습니다.

582

hyery95

작성한 질문수 1

2

강의가 너무 유익해서 시간가는줄 모르고 잘 보고있습니다. 좋은 강의 만들어주셔서 대단히 감사합니다.

 

하지만 강의를 보다가 이해가 잘 안되는 부분이 있어서 질문 드립니다. 강의시간이 1:50 쯤의 그림을 보면서 "socket 라이브러리를 통해 전달" 한다는 것이 이해가 잘 되지 않았습니다.

 

이 말을 저는 socket 라이브러리가 알아서 3handshake를 해서 연결상태를 보장받고 이후 TCP/IP 패킷을 생성하고 http 메시지를 담아 보내는 것으로 이해했습니다.

 

그런데 이 과정 중 3handshake와 socket library에 모호한 점이 있었습니다.

1-1. socket 라이브러리에서 3 hand shake 를 그림에서의 과정과 다르게 별도로 진행하여 연결이 되었다고 판단되면, 패킷 생성하고 네트워크 인터페이스 레이어를 지나 인터넷을 통해 서버로 전달. 즉, http 통신 프로세스와는 별개로 따로 서버와 syn / syn+ack / ack 만 주고받는 통신진행을 진행하는지

 

1-2. 아니면 전체 프로세스(강의에서 제공한 그림처럼)를 http 메세지와 syn이 포함된 TCP/IP 패킷을 생성하여 3번(syn / syn+ack / ack) 진행하는지

 

만약 1-1번 처럼 socket 라이브러리에서 따로 서버측과 syn / syn+ack / ack 을 통신한다면,

2-1. 최초 서버로 http 요청시 socket 라이브러리에서 3handshake를 실패시 http 요청 자체가 보내지지 않는건지. 그렇게 되면 클라이언트는 어떠한 응답도 못받는 상태가 되는건가요?

 

2-2. socket 라이브러리에서 3handshake를 하는 과정도 동일하게 TCP/IP 패킷을 생성하는지, 단순히 syn / syn+ack / ack 만 보내는지 궁금합니다.

 

3-1. 마지막으로 궁금한 것은 socket 라이브러리가 이런 것을 담당한다면 TCP를 이용한다면 반드시 socket 라이브러리를 써야하는 건지 궁금합니다. socket 라이브러리도 대체 가능한지 궁금합니다.

 

3handshake network socket socketlibrary

답변 1

3

David

안녕하세요. hyery95님, 공식 서포터즈 David입니다.

.

1-1. socket 라이브러리에서 3 hand shake 를 그림에서의 과정과 다르게 별도로 진행하여 연결이 되었다고 판단되면, 패킷 생성하고 네트워크 인터페이스 레이어를 지나 인터넷을 통해 서버로 전달. 즉, http 통신 프로세스와는 별개로 따로 서버와 syn / syn+ack / ack 만 주고받는 통신진행을 진행하는지

=> 3way hanshake는 별개로 진행됩니다. 강의 내에서 메시지를 보내기 전에 3way handshake가 진행된다고 언급하십니다.

 

 

만약 1-1번 처럼 socket 라이브러리에서 따로 서버측과 syn / syn+ack / ack 을 통신한다면,

2-1. 최초 서버로 http 요청시 socket 라이브러리에서 3handshake를 실패시 http 요청 자체가 보내지지 않는건지. 그렇게 되면 클라이언트는 어떠한 응답도 못받는 상태가 되는건가요?

=> 3way handshake에 실패하면 timeout이 발생합니다. 서버로부터 어떤 응답도 받을 수 없습니다.

 

2-2. socket 라이브러리에서 3handshake를 하는 과정도 동일하게 TCP/IP 패킷을 생성하는지, 단순히 syn / syn+ack / ack 만 보내는지 궁금합니다.

=> 3way handshake도 tcp/ip 패킷을 생성하여 전달합니다.

 

3-1. 마지막으로 궁금한 것은 socket 라이브러리가 이런 것을 담당한다면 TCP를 이용한다면 반드시 socket 라이브러리를 써야하는 건지 궁금합니다. socket 라이브러리도 대체 가능한지 궁금합니다.

=> 반드시 socket 라이브러리를 써야 합니다. 대체제가 있다면 대체 가능합니다. OS단에서 교체가 이루어져야겠지만요.

.
감사합니다.

3way handshaking 시점의 패킷들의 정보

0

520

2

캐시 관련 질문입니다.

0

615

1

ETag 질문입니다.

0

725

1

캐시의 설정 주체

0

533

1

영속쿠키 질문입니다.

0

501

1

협상(accept-language)

0

684

1

에러 코드의 구현 주체

0

436

1

웹서버가 구현?

0

593

1

필수헤더?

1

556

1

Host와 Port

0

771

1

다른 도메인이 같은 포트를 사용하는 경우

0

1256

1

표준 헤더와 임의 헤더

0

529

1

POST 등록 후 Location 헤더

0

565

1

프로세스의 상태가 변경되는 경우에 Post 사용

1

1807

1

지속연결에 대해서.

0

689

1

제가 아는 쿼리 파라미터 개념이 맞는지 확인 부탁드립니다.

0

589

1

캐시 내용중 no cache 일때

0

355

1

DNS 서버 관련 질문

1

744

1

캐시로 저장된 파일의 유효기간은 얼마나 되나요?

0

656

1

웹브라우저 요청흐름 질문입니다.

0

844

1

캐시 무효화 질문드립니다

0

558

1

리다이렉트와 리다이렉션 차이?

0

2588

1

쿠키 및 세션 관련 질문드립니다

0

584

1

HTTP 메서드 ( HTTP 메서드의 속성 파트 ) 강의의 멱등 내용에 대하여 질문드립니다.

0

1639

1