www.kocw.net/home/cview.do?mty=p&kemId=1169634
[네트워크 2강]
간략한 정리.
시작하기 전에 1강의 내용을 복기해보고 넘어가보자.
- Packet Delay
- Processing Delay : 라우터에서 패킷을 받아 검사하는데 걸리는 시간
- Queueing Delay : 이전의 패킷이 들어가있어서 들어가기까지 기다리는 시간 (밀어내기 형태)
- Transmission Delay : 큐에서 첫 비트부터 마지막 비트가 나가는 순간까지의 시간
- Propagation Delay : 패킷이 링크에 올라와서 다음 라우터까지 가는 속도
라우터가 더 많은 패킷을 들고올 경우 큐에 쌓이고, 큐보다 커져서 넘치게 되면 드랍이 되면서 "패킷 유실"이 일어난다.
(라우터의 큐에서 패킷 유실이 일어난다.)
( **패킷 스위칭 : 패킷이 다 올라와서 다음 단계로 이동하는 것 )
- 네트워크 계층
- APP : HTTP
- Transport : TCP UDP
- Network : IP
- Link : wifi,LTE
- Physical layer
(상위 계층은 하위 계층의 기능들을 사용할 수 있음)
- 서버 ~ 클라이언트
- 서버는 permanent한 ip주소를 가지고 있어야 한다.
- 클라이언트는 상관 없다. (고정X)
- 서버는 고정되어있어야 찾아갈 수 있기 때문!
결국 네트워크는 클라이언트 프로세스(소켓이라고도 함)와 서버 프로세스 사이의 통신이다.
IPC(프로세스 사이의 통신)와 다른 부분은, 다른 컴퓨터 상에 있는 프로세스와 통신한다고 생각하면 된다.
또한 소켓의 주소를 알아야 연결할 수 있음.
IP Address(어떤 컴퓨터인지 지칭하는 정보) / Port number(이 중에섯 어떤 프로세스인지)를 조합하여 주소를 완성할 수 있다.
포트가 거의 80으로 사용되고 있는데, 그 이유는 공통 요소로 사용하자고 이야기 된 것이다.
DNS에서는 IP주소로만 변환해주기에 Port가 다 다르다면 더 귀찮아지기 때문에 통일했다고 한다.
- APP이 필요로 하는 Transport의 서비스
- data integrity : 데이터가 유실되지 않고 온전히 목적지까지 전달했으면 해.
- timing : 내가 보낸 패킷이 정해진 시간 범위 내에 도착했으면 해. "개별시간" (ex. 음선전화)
- throughput : 보내는 데이터에 대해 1초에 어느정도 양이 지나갔으면 해. "양" (ex. 영화 다운로드)
- security : 내가 보내는 데이터가 안전했으면 해
>> 실제로 트랜스포트(TCP : O / UDP : X)에서는 "Data Integrity"만 서비스해준다.
나머지 요소들이 필요하면 위에서(APP) 따로 만들어 이용한다.
대부분의 웹 서비스들은 거의 TCP를 사용한다.
- HTTP?
- HTTP (Hypertext Transfer Protocol) : 텍스트인데 중간중간 링크가 있는 텍스트들을 전송하는 프로토콜
- request와 response로 이루어져있는 단순한 구조이다
- request : 원하는 하이퍼텍스트 파일 이름 등
- response : 전달해주는 결과값
- request/response하기 전에 TCP connection을 먼저 해줘야 한다. TCP 서비스에 기반하기 때문이다.
- HTTP는 stateless = 상태가 없다. 요청에만 대응하고 상대방의 상태를 기억하지 않는다.
- TCP Connection의 방법에 따른 두 가지 HTTP 케이스
- non-persistent HTTP : 메시지를 주고 받고나서 TCP 커넥션을 끊는 경우.
- TCP 연결 > HTP request > response > TCP Connection 끊기 > 다시 처음으로 가서 반복해야 메시지 주고받을 수 있음
- persistent HTTP : TCP 커넥션을 끊지 않고 지속적으로 사용하면서 계속 메시지를 주고받는 경우
- TCP 연결 > request & response > 계속 연결된 상태로 메시지 주고 받음
- non-persistent HTTP : 메시지를 주고 받고나서 TCP 커넥션을 끊는 경우.
모든 웹 브라우저에서는 persistent HTTP를 사용한다고 보면 된다! 비효율적으로 일부러 끊을 필요가 없기 때문!