웹과 네트워크 (1)

null·2021년 10월 5일
0

주소로 지정한 서버의 리소스(파일 정보)를 얻는다

클라이언트 >>>>>>>>>>>>>>>>>>>>>>>>> 서버

        <<<<<<<<<<<<<<<<<<<<<<<<<

                HTTP를 사용한 통신

이렇게 클라이언트에서 서버까지 어떤 흐름을 결정하고 있는 것 = HTTP, 프로토콜

HTTP를 이해하기 위해서는 TCP/IP 프로토콜에 대한 이해도가 필요하다

TCP/IP

서로 다른 하드웨어랑 운영체제를 가지고 서로 통신하려면 규칙이 필요하다 이걸 프로토콜

여기서 이너넷과 관련된 프로토콜들을 모은 것을 총칭해서 TCP/IP(TCP와 IP 프로토콜도 있음)

  • 계층(Layer)

TCP/IP는 '애플리케이션 계층', '네트워크 계층', '링크 계층', '트랜스포트 계층'

왜 이렇게 계층화 했는가?

인터넷이 하나의 프로토콜로 이루어져있다면 사양이 변경 됐을 때 통채로 바꿔야함,,

계층화를 통해 해당 계층만 바꿀 수 있기 때문에 생산성 up!

계층끼리 연결되어 있지만 내부는 자유롭게 설계 가능

  • TCP/IP 통신의 흐름

ex. 송신측 클라이언트 애플리케이션 계층(HTTP)에서 나 이 페이지 보고 싶어~ 를 지시한다

그 다음 트랜스 포트(TCP) 계층은 애플리케이션에서 받은 데이터(HTTP 메시지)를 통신하기 쉽게

조각내어 안내 번호 포트 번호를 붙여 전달

네트워크 계층(IP)는 수신지 MAC 주소를 추가해서 링크 계층에 전달

네트워크를 통해 송신 할 준비 끝!

수신 측은 링크 계층에서 차례로 위로 도달. 수신 완료 !

송신 할 땐 각 계층을 거칠 때는 헤더라고 불려지는 해당 계층에 필요한 정보를 추가하고

수신측에선 각 계층을 거칠 때마다 반드시 해당 계층마다 사용한 헤더를 삭제하는데

이렇게 정보를 감싸는 것을 캡슐화라고 한다

HTTP와 관계가 깊은 프로코톨 IP/ TCP/ DNS

  • IP
    네트워크 층에 해당하고..IP주소 아님. IP프로토콜임 두 개 다름!!
    역할: 개개의 패킷을 상대방에게 전달하자! 배송 담당
  • TCP
    트랜스포트층에 해당하고 신뢰성을 담당!
    큰 데이터를 보내기 쉽게 TCP 세그먼트라고 불리는 단위 패킷으로 작게 분해하여 관리,
    신뢰성 있는 서비스를 상대방에게 보내는 서비스 (정확하게 도착했냐?)
    상대에게 확실하게 보내기 위해 쓰리웨이 핸드셰이킹 방법을 사용
  • 쓰리웨이 핸드셰이킹 https://s3-us-west-2.amazonaws.com/secure.notion-static.com/fc360ad4-304e-49f6-aa9f-bbc890343af2/IMG_2017.jpg 패킷을 보내고 상대에게 확인까지! (SYN ACK 라는 TCP 플래그 사용)
    송신: syn 플래그로 상대에게 접속 , 패킷을 보냄
    수신: syn/ack 플래그로 송신측에 접속 + 패킷 수신 완료 사실 전달 송신 : syn 플래그를 보내 패킷 교환이 완료되었음을 전한다
  • DNS 클라이언트: 나 *** 웹페이지 접속하고 싶어 = IP 주소 알려줘
profile
개발이 싫어.

0개의 댓글