짜잔 2탄으로 돌아왔습니다!
ARP란?
Address Resolution Protocol
네트워크 계층 주소와 데이터 링크 계층 주소 사이의 변환을 담당하는 IP프로토콜입니다.
실질적으로 우리의 컴퓨터가 '랜카드'라는 물리적인 장치를 사용하여 네트워크에 연결되어 있기 때문에
네트워크 계층에서 데이터 링크계층으로 보낼때 MAC주소가 필요하게 되고 이를 위해 ARP프로토콜이 필요합니다!
ARP로 목적지 IP의 MAC주소를 찾는 과정은 다음과 같습니다.
0. ARP통신이 발생한 경우 IP를 통해 호스트 내에 존재하는 ARP테이블을 먼저 조회합니다. 해당 테이블에서 목적지 주소를 얻지 못한 경우 다음 단계(1번)로 넘어갑니다.
1. 송신자는 목적지 물리주소가 필요하므로 물리주소 요청을 위해 ARP요청 패킷을 브로드캐스트로 전송합니다.
브로드 캐스트란?
자신의 호스트가 속해있는 네트워크 전체를 대상으로 패킷을 전송하는 일대 다 방식 통신방법
2. 모든 수신자와 라우터는 송신자가 보낸 ARP요청 패킷을 수신합니다.
3. 해당되는 수신자만 자신의 IP주소와 MAC주소를 넣어 응답 패킷을 유니캐스트로 보냅니다.
유니캐스트란?
일대일 통신 방법으로 데이터를 보내고자 하는 주소(MAC주소)를 프레임에 포함시켜 보내는 방식
4. 응답을 받은 호스트는 ARP응답 패킷을 통해 ARP테이블에 내용을 추가하고 ARP PROCESS가 종료됩니다.
자 이제 MAC주소를 알아내어 통신할 서버에 접근하였으니 실제로 통신하기 위해 TCP소켓 연결을 진행하게 되는데요. 이 TCP소켓 연결은 3-WAY-HANDSHAKE라는 과정을 통해 이뤄진다고 합니다.(HTTP일경우)
1. 클라이언트측 TCP는 서버 TCP에게 SYN, 순서번호를 포함하여 세그먼트를 송신합니다.
2. 서버측 TCP는 세그먼트를 수신하여 SYN에는 1, SEQ에는 서버의 순서번호, ACK에는 클라이언트의 순서번호에 응답을 하였다는 규칙을 준 세그먼트를 클라이언트에게 다시 송신합니다.
3. 클라이언트측 TCP는 세그먼트를 수신한 다음 연결이 되었다는 의미로 SYN에 0을 주고 서버에 대한 확인 응답번호, 자신의 순서번호를 포합한 세그먼트를 마지막으로 서버에게 송신합니다.
이 과정에서 요청이 HTTP가 아닌 HTTPS요청이라면 암호화 통신을 위한 TLS핸드 셰이킹이 추가됩니다.
이러한 과정을 거쳐 TCP를 안전하게 보내기 위한 연결이 되었다는 것을 확실시 할 수 있게 됩니다.
해당 서버와 통신하기 위한 준비 절차가 완료되었으니 서버에게 www.naver.com을 달라고 요청하게 됩니다. 서버에서 해당 요청을 받고 이 요청을 수락할 수 잇는지 검사하게 됩니다. 그리고 서버는 이 요청에 대한 응답을 생성하여 브라우저에게 전달하게 됩니다.
브라우저 측에서는 서버에서 보낸 응답을 해석하여 www.naver.com페이지를 화면에 보여주게 되는 것이지요.
'CS > Computer Network' 카테고리의 다른 글
TCP 3 WAY, 4WAY HANDSHAKE (0) | 2021.06.27 |
---|---|
OSI 7계층과 TCP/IP 4계층 (0) | 2021.06.22 |
www.naver.com이라고 입력하면 일어나는 일-1 (0) | 2021.04.17 |
HTTP 완벽 가이드 - 웹은 어떻게 동작하는가 서적 구입 (0) | 2021.03.20 |
헤더 (0) | 2021.02.26 |