네트워크 계층
- 네트워크 계층은 5계층
- 각 계층 안에는 수많은 프로토콜 존재
- Application 계층 - HTTP
- Transport 계층 - TCP/UDP
- Network 계층 - IP
- Data Link 계층 - Wifi/LTE/Ethernet
- Physical 계층
서버와 클라이언트
Server
- 항상 24시간 동작
- 고정 IP address 가짐
- 고정된 주소를 가져야 client들이 찾아올 수 있기 때문
Client
Processes communicating
inter-process communicaton (IPC)
- 같은 host 사이에서 프로세스들 간 통신
- 다른 host 상에 위치한 process와 통신하기 위한 OS = socket
Socket (소켓)
- 다른 컴퓨터랑 연결하려면 소켓이랑 연결하고 싶다는 의사표현(message) 필요
- 소켓 주소를 입력해야함
- 소켓 주소
- IP address : 어떤 컴퓨터(host)인지 식별
- port : 어떤 프로세스인지 식별
- www.naver.com 이라고 우리가 입력하면 내부에서 dns 시스템이 ip adress로 변환해줌
왜 공통된 포트를 사용하고 있을까?
- 사이트 별 ip 주소 모두 다름
- port 번호까지 다르면 찾기 힘들기 때문에 포트 번호를 다 통일하기로 함
네트워크 계층의 기능
- 하위계층이 상위계층에게 기능을 제공
- application layer는 transport layer에서 제공하는 기능 사용
What transport service does an app need?
1) data integrity
데이터가 유실되지 않고 온전하게 목적지까지 도착
2) timing
시간 개념에 대한 희망사항 (10ms 내에 도착 등)
3) throughput
단위 시간 당 처리량
4) security
보안
- 실제로 제공하는 서비스는 data integrity 뿐
HTTP
HTTP란?

- hypertext를 전달하는 프로토콜
- hypertext : link가 존재하는 text
- request, response message만 존재
- response : 요청한 hypertext 파일의 내용을 전송
- request : 내가 원하는 hypertext 파일 이름을 보냄
- application layer의 프로토콜
HTTP의 특징
1) TCP 서비스를 사용
TCP connection이 필요
2) stateless (상태가 없음)
request가 들어오면 response 담아서 보낸 후 상대방의 상태를 기억하지 않음
HTTP connections
TCP connection 사용 방법에 따라 2가지로 나뉨
1) non-persistent HTTP
TCP connection을 만든 후 끊고 다시 만들어서 사용
2) persistent HTTP
TCP connection을 만든 후 끊지 않고 유지하여 재사용
- 실제로 web brower는 persistent HTTP를 default로 사용
출처 : http://www.kocw.net/home/cview.do?cid=6166c077e545b736