[네트워크] 한양대 컴퓨터 네트워크 이석복 교수님 2015년 - 7. 전송계층3

June·2021년 5월 29일
0

TCP Flow Control

sender가 receiver의 용량을 고려해서 보내는 것을 의미한다.
즉 receiver에 달려있기 때문에 receivr-driven이다.

빈 공간이 얼마나 있는지 정보를 TCP에 담아서 보낸다.

만약 처음 sender가 보넀을때 receiver가 버퍼에 자리가 없다고 응답을 보내면 sender는 가만히 기다리는 것이 아니라 데이터가 없거나 적은 데이터를 보낸다. 그래야 receiver의 버퍼가 갱신되는 상태를 알 수 있기 때문이다.

TCP Flow control: how it works

TCP Connection Management

TCP 3-way handshake

segment의 헤더에 syn 비트가 0인데 이때 보낼때 1이 된다. 1이라는 뜻은 너랑 연결을 하고 싶다는 뜻이다. 그리고 sequence 정보도 알려준다.

2-way handshake이 아닌 3-way인 이유?
각각의 입장에서 보내고 난후 되돌아 와야 한다

보통 세번째에는 데이터도 함께 보낸다.

Closing TCP Connection

time wait이 있는 이유는 기다리기 위함인데, 만약 기다리지 않고 ack를 보내고 close했는데, server가 ack를 받지 못하면 서버가 fin을 계속 보낼 것이기 때문이다. 그러면 client는 종료했기 때문에 받지 못하기 때문에서 서버는 계속 FIN을 기다린다. 따라서 충분히 기다리고 ACK를 보낸다.

A와 B가 연결되어있으면 둘 중 용량이 작은 것에 맞춰서 보내야한다. 만약 A와 B 사이에 인터넷으로 연결되어있다면?

TCP에서는 네트워크가 막혀있으면 상태가 더 악화된다. 왜냐하면 전달되지 않으니 또 보내기 때문이다. 따라서 각자 자신을 위해 보내는 양을 줄여야한다.

그럼 네트워크 상황이 좋은지 안좋은지 어떻게 알아낼 것인가?

Approaches towars congestion control

두 번째는 말이 안된다. 네트워크가 바쁜데 라우터가 저런일까지 할 수 없다.

첫 번째 방식은 end-end에서 상황을 유추하는 것이다. tcp를 보냈는데 반응이 느리면 상황이 안좋다고 유추하는 것이다. 현재 tcp가 사용하는 방식이다.

0개의 댓글