leetcode
-
- Bag of Tokens
- Maximum Depth of Binary Tree
programmers
-
- 게임 맵 최단거리
데이터 단위
위치 | 헤더 | |
---|---|---|
Frame | L2 | mac 주소 |
Packet | L3 | IP 주소 |
Segment | L4 | port 주소 |
TCP/IP 송수신 과정
- 송신 과정
- 애플리케이션이 데이터를 소켓에 쓰면, 커널은 이 데이터를 버퍼에 저장
- 커널은 버퍼에 저장된 데이터를 적절한 크기의 세그먼트로 분할하고,
헤더 정보(ex. 포트 번호 etc)를 각 세그먼트에 추가 - 세그먼트는 순서대로 전송(신뢰성 있는 스트림 전송을 위해)되고, 필요한 경우 재전송됩니다.
- TCP: 데이터의 도착 확인, 순서 보장, 오류 수정
- 수신 과정
- 네트워크를 통해 세그먼트 도착하면, 커널이 수신하여 해당 소켓의 수신 버퍼에 저장
- 커널은 세그먼트를 순서대로 재조립 및 데이터를 스트림 형태로 변환하여 애플리케이션으로 전달
- 이 과정에서 손실된 세그먼트의 재요청, 데이터의 순서 보장, 오류 검출 및 수정 발생
- 애플리케이션은 소켓에서 스트림 형태의 데이터를 받아서 필요한 처리를 수행한 후 사용자에게 최종 결과 제공
PC에서 google.com에 요청 보내기
- PC → 게이트 웨이
- DNS(Domain Name System) 조회를 통해 "google.com"의 IP 주소 획득
→데이터 패킷의 목적지 IP 주소로 설정 - ARP(Address Resolution Protocol) 조회를 통해 로컬 네트워크 상에서 게이트웨이(라우터)의 MAC 주소 획득
→ 이더넷 프레임의 목적지 MAC 주소로 설정
- DNS(Domain Name System) 조회를 통해 "google.com"의 IP 주소 획득
- 게이트웨이 → ISP
- ISP 네트워크와 같은 더 넓은 네트워크 영역에서는, 패킷의 라우팅이 주로 IP 주소에 기반하여 발생
- 각 중간 라우터는 패킷의 IP 헤더를 검사하여 다음 목적지를 결정
- 해당 네트워크 내에서의 목적지 MAC 주소로 프레임의 MAC 주소를 변경
- 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 |