- 패킷 스위칭을 고속도로에 비유
- 패킷 스위칭은 링크에서 빛의 속도로 도달
- 패킷 스위칭은 패킷의 모든 데이터가 라우터에 도착해야 다음 라우터로 진행 (패킷 단위로)
- 네트워크 애플리케이션
- 네트워크 edge 서버/클라이언트에서 동작하는 애플리케이션
- 서버
- 웹서버
- 서버는 24시간 동작해야함
- 인터넷 상에 존재하는 컴퓨터는 IP라는 고정된 주소를 가지고 있어야함 (요청을 받아야 하기 때문)
- 클라이언트
- 웹브라우저
- 클라이언트는 고정되지 않은 IP를 가져도 상관없음
- 소켓
- 프로세스끼리 통신(IPC)를 위해 OS가 system call을 통해 인터페이스를 만들어놓음
- 네트워크도 똑같음 : 두 프로세스가 다른 컴퓨터에 있을 뿐 OS가 인터페이스를 제공
- 이 인터페이스를 소켓이라고 함
- 소켓을 식별하기 위해 IP와 port를 사용
- IP는 인터넷 상의 컴퓨터 식별, port는 그 컴퓨터에서 프로세스(소켓)를 식별
- DNS
- IP/port를 외우기 싫어서 알파벳으로 사용하자
- IP 주소만 해석해줌
- port 80
- 구글, 네이버, 아마존 모두 80번 포트를 사용
- 왜?
- 서버는 항상 고정된 주소를 가져야함
- DNS는 IP만 해석해줌
- port가 다 다르면 헷갈리고 외우기 귀찮음
- OSI 7계층의 개념
- 하위 계층은 상위 계층에게 서비스를 제공
- 애플리케이션 레이어는 전송 계층에서 제공하는 기능을 사용
- transport layer에서 이런 서비스를 제공해줬으면 좋겠다
- 1. data integrity
- 데이터가 유실되지 않고 도착했으면 좋겠다 - 2. timing
- 데이터가 10ms 안에 도착했으면 좋겠다 - 3. throughput
- 데이터가 1 Gbps 용량이 나왔으면 좋겠다 - 4. security
- 보안 - TCP가 제공하는 기능은 1. data integrity만 제공해줌
- 1. data integrity
- 2. timing vs 3. throughput
- 똑같은 이야기 아닌가?
- timing은 언제까지 도착 (데이터가 하나도 출발하지 않다가 갑자기 전부 도착해도 됨)
- throughput은 양에 대한 이야기
- HTTP (HyperText Transport Protocol)
- HyperText를 전달하는 프로토콜
- Hyper Text
- 텍스트인데 중간중간 다른 텍스트로 이어지는 링크가 있는 텍스트 - request
- 내가 받고자하는 hypertext 파일 주세요 - response
- hypertext 파일 - 그런데 HTTP는 TCP를 사용
- request/response 이전에 TCP connection이 필요 - Stateless
- request를 받으면 response를 주고 끝
- 상태를 저장하지 않음
- persistent vs non-persistent HTTP
- non-persistent
- 한 번 데이터(object)를 전송하고 connection 종료 (유지하지 않음) - persistent
- 한 번의 TCP 연결로 여러 데이터를 주고 받음
- non-persistent
- non-persistent 예시
- 어떤 URL을 요청했을 때, 가져오는 데이터가 10개의 그림을 포함한 텍스트
- [1~3] TCP 연결 후 해당 텍스트를 response로 수신
- [4] response가 끝나면 TCP 연결 종료
- [5] 클라이언트는 텍스트를 파싱하고 10개의 reference가 더 필요한 것을 확인
- [1~3] 다시 TCP를 연결하여 그림 1을 response로 수신
- [4] TCP 연결 종료
- 다시 연결 -> 종료를 반복
- persistent
- persistent면 연결을 유지하여 그림을 모두 수신
- 현재 브라우저는 persistent HTTP 사용
'CS > 네트워크' 카테고리의 다른 글
[네트워크] KOCW 이석복 교수님 강의 - 1. 컴퓨터네트워크 기본1 (0) | 2022.03.28 |
---|