인터넷은 라우터와 DNS로 이뤄진 분산형 DB다. 계층적으로 존재하기 때문에 전세계적으로 분산 되어있는 Root DNS 13대를 종료하면 전세계의 인터넷을 중단시킬 수 있다.
IP주소에 이름을 지정해준 것을 도메인 네임이라고 한다. 네이버를 검색창에 입력하면 아래와 같은 과정이 일어난다:
1. 컴퓨터 내부에 있는 DNS cache를 검색한다.
2. hosts File을 검색한다.
3. 공유기에서 포워딩을 시도한다.
4. 인터넷 통신사별로 자사 Cache DNS를 확인한다.
5. 마지막으로 DNS를 확인한다.
6. 만약 해당 DNS에 도메인 주소가 없다면 RootDNS에게 요청을 한다.
7. RootDNS가 해당 DNS에게 도메인 주소와 관련된 DNS목록을 반환한다.
8. 해당 DNS는 목록에서 가장 가까운 DNS를 접속하여 도메인이 있는 서버주소를 get한다.
9. 서버에 해당 도메인 네임의 주소가 있는지 체크하고 있다면 IP주소를 가져온다.
10. 요청을 보낼 때 마다 응답과 함께 유효기간(expiration)을 받아온다. 이는 해당 주소를 Cache처리할 때 사용하게 된다.
nslookup - [ip address] 를 입력하면 자신이 원하는 IP주소의 출처를 확인할 수 있다.
만약 컴퓨터가 악성코드에 전염된다면, cache 또한 poisoning 될 수 있어서, 원래 접속하던 DNS가 다른 서버 주소에 접근하게 될 수도 있다.
인터넷은 기본적으로 패킷 스위치 네트워크다. 이는 L3구간이다. 한칸 내려가서 L2로 가게된다면 Packet은 Frame으로 변환된다. 최초 패킷이 생성됐을 때 패킷을 감싸고 있는 Frame이 있는데 그 위에 이더넷 Header가 탑재가 되는데 header의 S->D(시작점에서 도착지) 정보를 잘 확인해야한다. L2구간을 지나면 Frame의 이더넷 header가 떨어지고 새로운 목적지가 담긴 이더넷 header를 삽입한다.
사실상 IP 수준(L3계층)에서는 목적지에 대한 생각을 하지 않는다, L2로 넘어왔을 때 Mac address를 기준으로 이더넷 header를 통해 목적지에 전달된다는 뜻이다.
Mac address가 unique하지만 인터넷의 IP 주소를 Mac address를 기준으로 할 수 없다. 체계 자체가 다르고, L2에서만 사용하기에 IP 주소를 대체할 수는 없다.
ARP는 IP주소로 MAC주소를 알아내는 프로토콜이다. L2구간은 MAC이 중요하다. 스위치 허브엔 포트마다 MAC을 저장하고, 전원을 키면 학습모드로 들어가게 된다. 포트 하나에 Port MAC address를 여러개 저장할 수 있으며 이를 용량 단위로 하드웨어 성능을 설명한다. 스위치가 계층적으로 이뤄져있고, 포트가 up-link가 된다면 MAC address 가 여러개로 인식될 수도 있다. 랜선을 갈아 끼우면 (포트가 교체됐을 때) 따로 학습을 시키거나 다른 방식으로 대응을 해줘야한다.
특정 PC의 전원을 껐다 키면 자신에게 게이트웨이로 설정되어있던 192.168.0.1 의 MAC 주소를 못찾을 때 네트워크 전체에 Broadcast로 192.168.0.1의 위치를 찾는다. 이때 Query를 보내는데, reply가 올땐 unicast로 날아온다. 받은 Reply를 ARP Cache를 한다.
Broadcast가 닿는 곳을 LAN이라고 볼 수도 있다고 한다.
PC가 서버로 TCP 연결 요청을 할 때 TTL이라는 값이 헤더에 들어가게된다. 이는 Time To Live는, 라우터와 라우터 간격을 넘어갈 때 마다 Hop을 넘어간다고 하는데 이때 마다 TTL을 하나씩 감소시킨다. TTL은 8bit(2^8) 경우의 가지수가 있다. TTL이 0이 되면 Packet은 소멸하게 된다. 라우팅 설정이 잘못 됐을 때, 패킷이 루프에 빠질 수 있는데, 루프에 빠지면 연관 컴퓨터는 CPU에 과부하가 생겨 문제가 될 수 있다. 특정 라우터에 도착했는데, TTL이 0일 때 ICMP를 이용해 도착지에 응답을 보내준다. 해당 응답은 패킷이 버려졌다는 걸 의미하는데, 보안적인 문제 때문에 응답을 보내지 않을 수도 있다.