CS

[Network] 웹 통신의 큰 흐름

KJihun 2023. 10. 5. 14:03
728x90

계층별 설명

 

응용 계층 (Application Layer)

사용자가 브라우저를 통해 "https://www.google.com/"을 입력하면, 

1. 브라우저가 URL에 적힌 값을 파싱해서 HTTP Request Message를 만든 후, OS에 전송 요청
2. 브라우저는 DNS 서버에 "www.google.com"이라는 도메인 이름의 IP 주소를 요청(DNS Lookup)

DNS Lookup 과정: 크롬의 경우 브라우저 → hosts파일 → DNS Cache의 순서로 도메인에 매칭되는 ip를 찾는다.

(루트 도메인 서버 -> 서브도메인 서버순으로 찾음)
3. 브라우저는 IP 주소로 HTTPS 요청을 전송한다.

 


표현 계층 (Presentation Layer)

요청된 데이터를 표현하고 압축, 암호화 등의 변환을 통해 적절한 형식으로 변환한다.

 


세션 계층 (Session Layer)

안전한 통신 환경 제공 및 안정적인 데이터 전송을 보장하는 계층이다.

통신하는 두 시스템 간의 세션을 설정, 유지 및 종료, 데이터의 동기화를 처리를 담당한다.

동기화(Synchronization): 데이터의 송수신을 동기화하여, 데이터의 일관성을 유지(데이터의 손실 방지)


전송 계층 (Transport Layer)

 

데이터의 신뢰성을 보장하는 계층이다.

브라우저는 HTTPS 요청을 TCP 프로토콜을 사용하여 전송

TCP 연결 설정: DNS 서버는 IP 주소를 반환하고, 브라우저는 해당 IP 주소로 TCP 연결을 설정

 

[Network] TCP/UDP

TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 네트워크에서 데이터를 전송하는 주요 프로토콜이다. TCP (Transmission Control Protocol) 데이터 단위: Segment 통신을 시작하기 전에 세션을 설정하고,

developerhun.tistory.com

 

TLS 연결 설정: HTTPS 프로토콜 사용 시, 통신의 암호화를 위해 TLS(Transport Layer Security)핸드셰이크 수행

 

[CS] HTTP/HTTPS의 차이, SSL/TLS이란?

HTTP/HTTPS HTTP와 HTTPS는 클라이언트와 서버 간 통신에 사용되는 프로토콜이다. 프로토콜이란 컴퓨터나 디지털 장치 등 다양한 기기간에 통신하기 위한 규칙과 규약이다. 사용자의 요청(주소창에 UR

developerhun.tistory.com

 

 

 

네트워크 계층 (Network Layer)


데이터 패킷의 경로 선택과 라우팅을 담당.

 

라우터: 서로 다른 네트워크 간의 통신을 이룰 수 있도록 패킷을 전송해주는 역할 및 라우팅 기능 제공

 

라우팅: 라우터에 패킷이 들어오면 어디로 가야할 지, 경로를 정해주는 과정

forwarding table을 통해 경로가 결정되고, fowarding table은 라우터 알고리즘에 의해 만들어진다.

(어떻게 나갈지 결정하는것)

 

포워딩: 라우터의 입력포트로 ip패킷이 들어오면 이 패킷이 어디로 가야할지 방향에 맞게 출력포트로 전달

입력포트 내 forwarding table의 IP주소와 비교하여 방향을 정해준다.

(결정된 것에 따라 이동시켜주는것)

 

 

라우팅 알고리즘(데이터 패킷의 최적 경로를 찾는 알고리즘): Dijkstra's Algorithm, Bellman-Ford Algorithm

 

[자료 구조] 최단 거리 알고리즘 정리 (다익스트라, 벨만 포드, 플로이드 워셜)

최단 거리 알고리즘이란 그래프 상에서 노드 간의 탐색 비용을 최소화하는 알고리즘이다. 일반적으로 네비게이션과 같은 길찾기에 적용된다. 최단 거리 알고리즘 종류는 크게 3가지가 있다. 1.

roytravel.tistory.com


1. 다익스트라 알고리즘 (Dijkstra's Algorithm): 음수 간선이 있을 경우 사용할 수 없다


2. 벨만-포드 알고리즘 (Bellman-Ford Algorithm)
   - 다익스트라 알고리즘과 비교하여 더 느리지만, 음수 간선이 있을 경우 최단 경로를 찾을 수 있다.
   - 주로 네트워크에서 루프가 있는 경우나 음수 가중치를 다룰 때 사용.

 

 

패킷을 데이터그램으로 쪼개기 위해 IP단편화가 필요하다(IP단편화 찾아볼 것)

 

 

 

데이터 링크 계층 (Data Link Layer)

데이터 프레임을 관리하고, 물리적인 매체를 통해 안전한 전송을 보장. MAC 주소 등이 여기에 해당

MAC 주소: 네트워크 카드(NIC)에 할당된 고유한 주소. 물리적인 주소로 노드 간 통신을 관리한다.
흐름 제어 및 오류 검출: 프레임 전송 중에 오류를 검출하고, 필요한 경우 재전송한다.
스위치 사용: 스위치는 이 계층에서 동작하여 프레임을 목적지로 전송

 


물리 계층 (Physical Layer)

실제로 데이터가 물리적으로 전송되는 단계.
비트를 전기 신호로 변환하고 전달한다.

 

 

 

 

 

흐름별 설명

 

사용자가 브라우저를 통해 "https://www.google.com/"을 입력하면, 

1. 브라우저가 URL에 적힌 값을 파싱해서 HTTP Request Message를 만든 후, OS에 전송 요청
2. 브라우저는 DNS 서버에 "www.google.com"이라는 도메인 이름의 IP 주소를 요청(DNS Lookup)

3. HTTP Request Message는 프로토콜 스택(보통 OSI)에 의해 데이터가 패킷으로 쪼개어지고, 패킷에 제어정보,목적지 IP 주소, 출발지 IP 주소를 덧붙여 LAN 어댑터에 전송

4. 패킷은 스위치를 경유하여 인터넷 접속용 라우터에서 ISP로 전달되고 인터넷으로 이동

스위치: 패킷의 목적지 주소를 보고 해당 포트로만 전송
5. 액세스 회선에 의해 통신사용 라우터로 운반되고 인터넷의 핵심부로 전달

인터넷의 핵심부: 여러 인터넷 서비스 제공자(ISP)들이 서로 연결되어 있는 인터넷 인프라

6. 핵심부를 통과한 패킷은 목적지의 ISP에 도착하고, 방화벽이 패킷을 검사한 후 캐시 서버를 확인하여 웹 서버에 갈 필요가 있는지 확인.

7. 캐시 서버에 요청한 데이터가 없거나, 캐시 서버에서 응답을 할 수 없는 경우, LAN 어댑터를 경유하여 패킷을 전기 신호로 변환하여 송출

8. 웹 서버에 도착한 패킷은 프로토콜 스택이 패킷을 추출하여 메시지를 복원하고 웹 서버 애플리케이션에 전송. 애플리케이션은 요청에 대한 응답 데이터를 작성하여 클라이언트로 회송하고, 이는 전달된 방식 그대로 전송된다.

 

 

 

 

 

Browser에 구글을 검색하면 일어나는 일

1. www.google.com을 브라우저 주소창에 친다. 2. Browser는 캐싱된 DNS 기록들을 통해 www.google.com에 대응되는 IP 주소가 있는지 확인한다 DNS(Domain Name System)은 URL들의 이름과 IP주소를 저장하고 있는 데이

code00.tistory.com

 



'CS' 카테고리의 다른 글

[OS] Context Switching  (0) 2023.10.05
[OS] 멀티 프로세스와 멀티스레드의 장단점  (0) 2023.10.05
Java Sort Algorithm  (0) 2023.09.30
[Network] TCP/UDP  (0) 2023.08.04
[CS] NoSQL vs RDMBS  (0) 2023.08.02