개요.

예전에 festa 강의 신청해놓은게 있는데 약속있어서 못들었는데, 유튜브에 무료로 올라와서 정리 겸 포스팅한다.

 

URL 주소, www.google.com  으로 어떻게 네트워크 통신을 하는가

  • 문자열 www.google.com 을 IP 로 변환해주어야 한다.
  • DNS 서버를 통해 IP 주소로 변환요청을 해야한다.
  • 만약 잘 알려진 도메인이 아닌 신규 도메인을 만들게 된다면, 앞단의 DNS 서버가 모르면 상위의 DNS 서버에게 신규 도메인의 IP 를 계층적으로 물어본다.

domain name 으로는 ping 이 안날라가고,
ip address 는 ping 이 날라간다.

  • DNS 서버 설정이 되어있지 않음을 의심해볼 수 있다.

HTTP 통신 (curl 명령어 이용)

  • curl -vI www.google.com
    • -v : verbose 자세히 보겠다.
    • I : 헤더값을 보겠다.
  • curl www.google.com | less 
    • 바디 부분을 보겠다.
  • curl -vI www.google.com 2>&1 | grep "> " (request)
  • curl -vI www.google.com 2>&1 | grep "< " (response)
  • 모든 프로그램은 파일이 세 개가 열려있다.
    • input(1) / output(2) / error(3)
    • 2>&1 : error 를 output 으로 출력하겠다.

TCP/IP 통신 : 어떤 라우터를 거쳐서 구글 서버까지 패킷이 도착하는가

  • 세계 곳곳에 라우터가 존재하고 있다.
  • 멀리있으면 멀리있을수록 라우터를 많이 거치게 된다.
  • traceroute 명령어를 통해서 어떤 라우터를 거쳐가는지 추적할 수 있다.
    • hostname -I 명령어를 통해 현재 호스트 IP 를 확인할 수 있다.

host IP 에서 게이트웨이까지 (1 ~ 2)

  • 패킷이 살아있을 수 있는 시간 : TTL
  • 살아있을 수 있는 시간이 적으면 라우터는 다음 라우터에게 패킷을 넘기지 않고 다시 되돌려보낸다.

HTTP 는 TCP/IP 기반 통신이고, 연결을 맺는것이 매우중요하다. TCP/IP 프로토콜은 3-Way-Handshake 를 통한 커넥션을 맺는다. 이후 데이터 통신을 수행하다가 4-Way-Handshake 를 통해 커넥션을 끊는다. 리눅스 상에 TCP/IP 커넥션 관련 명령어가 작성해서 터미널에서 확인할 수 있기도 하다.

 

 

Posted by doubler
,