본문 바로가기
TIL

[TIL] 24.03.04

by 준팍(junpak) 2024. 3. 4.

leetcode

    1. Bag of Tokens
    2. Maximum Depth of Binary Tree

programmers

    1. 게임 맵 최단거리

데이터 단위

  위치 헤더
Frame L2 mac 주소
Packet L3 IP 주소
Segment L4 port 주소

TCP/IP 송수신 과정

  • 송신 과정
    • 애플리케이션이 데이터를 소켓에 쓰면, 커널은 이 데이터를 버퍼에 저장
    • 커널은 버퍼에 저장된 데이터를 적절한 크기의 세그먼트로 분할하고,
      헤더 정보(ex. 포트 번호 etc)를 각 세그먼트에 추가
    • 세그먼트는 순서대로 전송(신뢰성 있는 스트림 전송을 위해)되고, 필요한 경우 재전송됩니다.
      • TCP: 데이터의 도착 확인, 순서 보장, 오류 수정
  • 수신 과정
    • 네트워크를 통해 세그먼트 도착하면, 커널이 수신하여 해당 소켓의 수신 버퍼에 저장
    • 커널은 세그먼트를 순서대로 재조립 및 데이터를 스트림 형태로 변환하여 애플리케이션으로 전달
      • 이 과정에서 손실된 세그먼트의 재요청, 데이터의 순서 보장, 오류 검출 및 수정 발생
    • 애플리케이션은 소켓에서 스트림 형태의 데이터를 받아서 필요한 처리를 수행한 후 사용자에게 최종 결과 제공

PC에서 google.com에 요청 보내기

  1. PC → 게이트 웨이
    • DNS(Domain Name System) 조회를 통해 "google.com"의 IP 주소 획득
      →데이터 패킷의 목적지 IP 주소로 설정
    • ARP(Address Resolution Protocol) 조회를 통해 로컬 네트워크 상에서 게이트웨이(라우터)의 MAC 주소 획득
      → 이더넷 프레임의 목적지 MAC 주소로 설정
  2. 게이트웨이 → ISP
    • ISP 네트워크와 같은 더 넓은 네트워크 영역에서는, 패킷의 라우팅이 주로 IP 주소에 기반하여 발생
    • 각 중간 라우터는 패킷의 IP 헤더를 검사하여 다음 목적지를 결정
    • 해당 네트워크 내에서의 목적지 MAC 주소로 프레임의 MAC 주소를 변경
  3. ISP → google 서버
    • 최종적으로 google의 데이터 센터에 패킷 도착
    • google.com 서버의 MAC 주소를 이더넷 프레임의 MAC 주소로 설정 후 라우팅

'TIL' 카테고리의 다른 글

[TIL] 24.03.06  (0) 2024.03.06
[TIL] 24.03.05  (0) 2024.03.05
[TIL] 24.03.03  (0) 2024.03.03
[TIL] 24.03.02  (2) 2024.03.02
[TIL] 24.03.01  (0) 2024.03.01