[CS]/[컴퓨터네트워크]

중간복습 - Network, Application layer, Transport layer

broship 2021. 3. 15. 14:44

※kocw에서 제공하는 이석복 교수님의 컴퓨터네트워크 수업을 듣고 필기한 내용입니다.

출처를 따로 밝히지 않는 한 전부 해당 수업에서 제공한 자료들이며 제가 작성한 부분에 있어 틀린 부분이 있을 수도 있다는 점 양해바랍니다.


 

 

1. Computer Network and Internet


1) 인터넷의 구성 요소

1. 엣지 - 서버, 클라이언트

2. 코어 - 라우터

 

2) 인터넷의 기본 전송 단위

- 패킷

 

- 인터넷은 데이터를 패킷으로 쪼개서 전송하기 때문에 한꺼번에 여러명의 사용자를 관리할 수 있음

- 하지만 라우터가 담을 수 있는 크기를 초과해서 패킷이 들어올 경우 유실이 발생함

- 이렇게 발생하는 유실이 네트워크 전체 유실의 대부분을 차지

 

 

3) 데이터 전송때 걸리는 시간

1. 프로세싱 딜레이  - 헤더를 읽고 경로 지정, 패킷 에러 체크하는 등의 프로세싱에 걸리는 시간

2. 큐잉 딜레이 - 라우터 안에 이미 다른 패킷이 있을 경우 자기 차례를 기다리는데 걸리는 시간

3. 트랜스미션 딜레이 - 패킷이 온전히 라우터에서 뿜어져 나오는데 걸리는 시간

4. 프로퍼게이션 딜레이 - 다음 라우터까지 가는데 걸리는 시간(빛의 속도)

 

 

 

 

 

2. Application layer


HTTP protocol

- 서버와 클라이언트 사이에 request와 response로 메세지가 이루어짐

- 서버는 단순히 요청된 파일을 전달한 뿐이기 때문에 기억창고를 가지고 있지 않음, stateless 하다고 함

- 전송계층의 tcp 프로토콜을 사용하기 때문에 reliable한 데이터 전송이 가능함

non-persistent HTTP: 매 request마다 새로운 TCP 커넥션 연결

persistent HTTP: 한번 연결한 TCP 커넥션을 재사용(default)

 

 

 

 

3. Transport layer


1) UDP protocol

- 전송계층이 제공하는 가장 기본적인 기능만 수행(목적지 까지 전달, 에러체크)

- DNS, SNMP 프로토콜이 UDP를 사용

 

2) reliable data tranfer

- 전송계층 이하에서 발생하는 패킷 에러, 유실을 방지하기 위함

- 패킷 에러를 위한 메카니즘

1. Error detection: checksum 으로 에러체크

2. Feedback: ACK로 받은 패킷에 대한 피드백을 줌

3. retransmission: 패킷 에러가 발생했을 경우 재전송

4. sequence number: 새로운 패킷과 재전송된 패킷을 구분하기 위한 시퀀스 넘버

- 패킷 유실을 위한 메카니즘

1. 타이머: 타임 아웃 될때까지 피드백이 안올경우 유실로 판단

 

3) Pipelined protocol

- 데이터 전송 속도를 위해 한꺼번에 여러개의 패킷 전송

- Go-Back-N 방식:

장점: 단순함, 리시버 버퍼가 필요 없음, 단 하나의 타이머만 필요

단점: 에러 혹은 유실 발생 시 윈도우 전체를 다시 보내야 하기 때문에 네트워크에 과부화를 줄수있음

- Selective repeat 방식:

장점: 에러 혹은 유실 발생 시 해당 패킷만 재전송하기 때문에 네트워크에 과부화를 줄일 수 있음

단점: 리시버 버퍼가 필요함, 센더 윈도우안의 모든 패킷마다 타이머를 가지고 있게 해야됨

 

4) TCP protocol

- point-to-point: 1대1 연결

- reliable data tranfer

- pipelined

- send & receive buffers: 양쪽에 각각 센더, 리시버 버퍼 필요

- full duplex data: 양뱡향 통신

- connection-oriented: handshaking으로 연결 관리

- flow controlled: 흐름제어

- 그 밖의 특징들:

1. tcp 헤더에는 모든 중요한 내용들이 함축적으로 담겨있음

2. cumulative ACK: ACK가 유실되더라도 가장 최근에 받은 ACK만 보고 판단하면 됨

3. 타임아웃 혹은 중복된 ACK를 3개 더 받으면 유실이라고 판단