3 handshake(with socket library) 관련 질문있습니다.
582
작성한 질문수 1
강의가 너무 유익해서 시간가는줄 모르고 잘 보고있습니다. 좋은 강의 만들어주셔서 대단히 감사합니다.
하지만 강의를 보다가 이해가 잘 안되는 부분이 있어서 질문 드립니다. 강의시간이 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 라이브러리도 대체 가능한지 궁금합니다.
답변 1
3
안녕하세요. 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





