작성
·
193
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
웹 브라우저 요청 흐름에 대해 제가 이해한 순서입니다.
요청이 들어오면 DNS에서 조회해 IP, PORT를 얻는다.
IP, PORT를 바탕으로 HTTP 요청 메시지를 생성한다.
TCP/IP 패킷을 생성하여 서버로 전달한다.
(전송계층에서 PORT 정보 추가, 인터넷계층에서 IP 정보 추가)
이 과정에서 TCP/IP 패킷을 생성할 때의 IP 주소와 PORT 번호는 어디서 가져오는지 의문이 들었는데요, 1번 DNS에서 조회해 얻은 IP, PORT를 각각 전송계층, 인터넷계층에서 헤더 값으로 추가해주는 것인가요?
답변 1
1
안녕하세요. svbean77님
DNS 서버는 해당 도메인 이름에 대응하는 IP 주소를 반환합니다. (port 반환이 아님)
DNS 조회를 통해 얻은 서버의 IP 주소는 인터넷 계층에서 목적지 IP 주소로 사용됩니다.
서버의 포트 번호는 전송 계층에서 목적지 포트로 사용됩니다.
클라이언트의 IP 주소와 임시 포트 번호는 각각 인터넷 계층과 전송 계층에서 출발지 IP 주소와 출발지 포트로 사용됩니다.
쉽게 이야기해서 정리하자면 DNS를 통해서는 IP 주소를 획득하는 것입니다. port 번호는 클라이언트가 서버에 패킷을 전달할 때 직접 패킷에 넣어서 전달해야 합니다. 이때 획득한 IP 주소와 클라이언트 자신의 port 번호와 서버의 port 번호를 모두 포함해서 서버에 전달합니다. 클라이언트 자신의 port 번호는 보통 사용하지 않는 포트 중에 임의로 생성됩니다. 서버의 port 번호는 직접 지정해야 합니다. 일반적인 웹 애플리케이션 http 프로토콜의 경우 80 포트를 사용하고 https의 경우 443을 많이 사용합니다.
웹 브라우저의 경우 포트를 지정하지 않으면 이 기본 포트들을 서버 포트로 사용합니다.
감사합니다.