kocw 컴퓨터네트워크 - 한양대학교 이석복 교수님의 강의를 듣고 정리한 내용입니다.
http://www.kocw.net/home/search/kemView.do?kemId=1312397
서버
항상 연결되어 있으며 클라이언트의 요청을 기다린다.
요청이 들어오면 데이터를 보내준다.
클라이언트
필요할때마다 연결하여 서버에 데이터를 요청한다.
TCP: Transmission Control Protocol
UDP
비연결 서비스
비신뢰성
실시간 음성에 적합
속도가 빠르다
프로토콜이란?
데이터 통신을 원활하게 하기 위해 필요한 통신 규약(약속)
라우터가 데이터를 목적지까지 전달하는데 두 가지의 데이터 전송 방식이 있다.
Circuit switching
출발지부터 목적지까지의 edge를 미리 배정
동시에 사용 가능한 인원이 적음
사용자 입장에서는 데이터를 요청하지 않고 머무르는 시간이 더 길 수 있기 때문에 자원이 낭비될 수 있음
Packet switching
패킷 검사 (nodal processing)
패킷의 비트를 체크
Output link 선택
개선 방법
queueing
개선 방법
사용자와 사용량에 의해 결정되므로 제어 불가
큐가 넘칠 경우 패킷 유실이 발생할 수 있다.
TCP의 경우 처음부터 다시 재전송이 필요함
Transmission delay
패킷의 첫 비트부터 마지막 비트가 나가기까지 걸리는 총 시간
(패킷 길이) / 링크 bandwidth
개선 방법
Propagation delay
개선 방법
서버
클라이언트
같은 호스트에서 두 프로세스가 통신하기 위해서는 OS에 정의된 내부 프로세스 통신을 한다.
호스트가 다를 경우 메시지를 교환하므로써 통신을 한다.
application layer 는 transport layer에 종속적이며, transport layer에서 application layer에 다음과 같은 것들 보장받길 원하지만 보장해주지 않음.
data integrity: 데이터 무결성(손실이 없음을 보장) => TCP는 이를 보장함
timing: 제한 시간 내에 보냄
throughput: 처리량
security: 보안
보장해주지 않는 나머지는 application 레벨에서 처리해야한다.
web page는 object이다. HTML 파일에 기반을 둔 객체로 각각은 URL에 의해 접근 가능하다. HTTP는 이러한 파일을 주고 받는 통신이다.
Non-persistent HTTP
통신이 완료되면 연결 끊음
매 http 마다 TCP 커넥션을 새로 맺음(비효율)
응답 시간이 persistent 방식보다 더 오래 걸림
RTT : round trip time(= 패킷 왕복 시간), 패킷을 목적지에 보내고 그 응답이 돌아오기까지의 시간
Persistent HTTP
TCP 연결 재사용
HTTP Client는 포트 80의 IP주소에 TCP connection을 서버에 요청
해당 호스트의 HTTP 서버는 포트 80에 연결을 기다렸다가 수락 후 클라이언트에 알림
클라이언트는 HTTP request 메시지를 TCP 연결 소켓으로 보냄
메시지에는 어떤 데이터를 원하는지 적혀 있음
서버는 request message를 받고 요청된 데이터가 포함된 reponse message를 만들고 소켓으로 보냄
서버 TCP 연결 종료
클라이언트는 응답 메시지를 받고 받은 데이터를 읽고 표시한다 (parsing, display)
반복