** KOCW에서 이석복 교수님의 네트워크(2015년) 강의를 수강한 내용을 정리한 글입니다.
http://www.kocw.net/home/search/kemView.do?kemId=1169634
Application layer에 대해 알아볼 예정
계층 구조 (- 각각의 대표적인 프로토콜) → 탑 다운 방식으로 살펴볼 예정
Application - HTTP
Transport - TCP / UDP
(이상은 라우터에는 존재하지 않고, 네트워크 엣지에만 존재)
Network - IP
Link - WiFi / LTE / 3G / Ethernet
Physical
HTTP에 대해서 알아보자
Client-server architecture
- Server
- Always-on host
- 고정된(Permanet) IP address
- Client
- Server와 통신
- 동적 IP를 가지고 있을 것임
- 서로 다른 host(컴퓨터)에 올라와 있는 프로세스(각각 서버, 클라이언트) 사이의 통신을 애기하는 중
- 같은 host에 올라와 있는 프로세스 간 통신은(IPC - Inter-Process Communication) OS에서 처리
- 통신 메시지를 주고 받는 공간을 Socket이라고 함
- 양단을 연결하려면 주소가 특정되어야 함 → IP(컴퓨터 특정) + Port(프로세스에 물린 소켓 특정)의 조합으로 특정
- IP를 DNS(Domain Name System)에 의해 별도의 주소(이름)로 연결할 수 있음
- port 입력 안 하면 → 자동으로 80번
- naver.com:80 해도 연결됨, 8080은 안됨
- 우리가 알고 있는 모든 웹 서비스들이 80번 포트를 씀 → DNS를 쓰기 때문에, port 넘버는 80번으로 통일하자는 암묵적 합의
App은 Transport 계층에 이런 것을 원한다
- Data integrity : 데이터 무결성
- Timing : 낮은 딜레이 보장
- Throughput : 최소한의 데이터 양 보장
- Security : 보안
하지만 TCP에서 Data integrity를 제공하지만 UDP는 그마저도 안 해주고, 나머지 기능은 제공하지 않는다 → Application layer에서 처리해야 함
App들의 프로토콜 사용 예시
HTTP란?
- HyperText Transfer Protocol
- 웹의 Application layer protocol
- Client / Server model
- Client : 웹 오브젝트를 요청, 수신, 화면에 표시하는 브라우저
- Server : Response에 담긴 오브젝트를 요청한 곳에 전달하는 웹 서버
- 모두 HTTP를 사용
- 쉽게 생각하면, Reqeust를 보내고 Response를 받아오는 프로토콜(규격, 방식)
HTTP는 기저에 TCP 서비스를 사용 → TCP Connection을 생성해야 한다.
- Client는 서버에 TCP Connection을 실행(Socket 생성) (port 80)
→ Server는 Client에서 온 TCP Connection을 수용
→ HTTP 메시지가 브라우저(HTTP Client)와 웹 서버(HTTP Server) 사이에서 교환됨
→ TCP Connection 종료
HTTP는 “stateless(무상태)” 하다
→ Server는 Client의 과거 요청 정보(state)를 가지고 있지 않는다
만약 state를 유지하는 Protocol이라면?
- 과거 기록이 계속 유지되어야 한다
- 만약 Server나 Client가 충돌하면 → view의 상태는 일관성이 없어지고, 반드시 조정되어야 한다.
HTTP Connections
HTTP는 TCP Connection을 non-persistent(비영구적) / persistent(영구적)으로 사용하는지에 따라 분류된다.
- Non-persistent HTTP
- 1개의 오브젝트를 전송하면 TCP Connection을 바로 닫는다
- 실제로는 파이프라인과 결합하여, n개의 메서드를 전송하고 Connection을 닫는 방식을 사용함
'Computer Science > 네트워크' 카테고리의 다른 글
1강) 컴퓨터네트워크 개요 - 네트워크 구조 / 패킷 스위칭 (1) | 2023.01.21 |
---|