본문 바로가기
👨‍💻Computer Science/컴퓨터네트워크

[컴퓨터네트워크] 23장 Transport layer: Congestion Control

by 코푸는 개발자 2021. 7. 24.
728x90

프로세스는 client(요청) 아니면 server(제공, 늘켜져있음)

-In the Internet model -> 포트번호가 0-65,535

-Well-Known port number fixed value 0-1,023

-Ephemeral port number -> 랜덤하게 전송

System call을 통해서 프로세스를 사용할 수 있게 해줌

-> 시스템 콜이 제공해주는 것은 socket(구성 IP주소 + 포트번호)이라고 함

MUX기능 제공

 

-> 프로세스와 프로세스 간에 전송하는 것

중요

DNS-www._.과 같은 주소들을 IP주소 번호로 바꿔주는 역할을 함

Reliable Service가 무엇인지

-> 신뢰 : 통신, 내가 보낸 데이터를 상대방이 받음, 매커니즘이 어려움

-> 연결, 응답(ACK)

밑에 계층에서 flow, error control을 했는데 왜 또 필요한지?

>> 인터넷 계층이 connectionless이고 unreliable하기 때문에(best-effort delivery)

패킷이 파괴되고 전달이 안 될 수 있음 -> 따라서 오류 발생 시 대책이 추가로 필요함(3계층에서 별다른 조치가 없음)

 

Unreliable Service가 무엇인지

-> 따로 신경쓰지않음

-> 속도가 빠름

 

-SYN Flooding Attack -> 마지막 응답을 계속 주지않아 자원의 고갈이나 끝없는 기다림에 빠지게 하는 것

 

어떤 프로토콜이 저러한 성질을 가지는지

TCP가 왜 Reliable한 것인지?

-> Reliable하기 위해서 무엇을 했는지?

TCP -> Connection-Oriented protocol(연결을 미리 시키는 것, 연결이 되면 튜브같은 통로가 만들어짐(stream)), Reliable Service -> virtual로 연결함

UDP(User Datagram Protocol) -> Connectionless, Unreliable Service -> flow control, error control이 없음, 보내기만 하고 응답은 없음, RIP사용

 

앞에 헤더들 정보

포트번호

각종 제어

window

window 사이즈가 receive window가 될 수도 있고 flow control일 때

congestion control일 때는 congestion window가 되어서 양을 줄일 수 있는 메커니즘을 활용할 수 있게 만들어진 것이 window size

 

TCP -> FTP(21번 포트를 통해 처음 연결하고 20번 포트를 통해 데이터를 주고받음)

Piggybacking 응답을 보낼 것 뒤에다 붙여서 같이 보내는 것

 

TCP 구성 -> 크기 6000bytes

-window size -> 받아서 가용할 용량을 알려줌

URG 긴급할 때 사용

ACK 응답

PSH 데이터 보냄

RST 다시 리셋

SYN 연결

FIN 종료

 

한번 갔다가 오면 응답 한번 더 보내는 것(완전연결) - three way handshake

 

-half close -> 반만 응답함, 가공중인 데이터가 있을 때 처음에는 ACK만 보내고 가공이 끝나면 ACKFIN를 같이 보내는 것(ex. http)

-congestion control

-TCP Connection(흐름제어, flow control)

ex) TCP가하는 일 예시

-Taho TCP -> 시작이 Slow start(혼잡을 가정을 해서 처음을 조심해서 보내는 것 기하급수적으로 커짐) -> 혼잡이 발생하면 처음부터 이전 반까지는 오고 그때부턴 CA(Congestion avoidance)하게 보냄 다시 dup ACK가 지속적으로 오면 다시 처음으로 내려갔다가 안전영역까지 급하게 오고 거기서부터 다시 CA진행

-Reno TCP -> SS로 시작하고 위와 같이 진행하다 dup ACK발생시 FR(Fast recovery)동작

-> 이건 왕창 내려가지 않음

-AIMD(Additive increase, multiplicative decrease)

->높은 곳에서 시작하고 선형적으로 증가, 문제가 생길 시 생긴 곳의 절반만큼 내려와서 다시 시작함

>>TCP에서는 트래픽을 과도하게 안 보내겠다!(혼잡제어)

UDP에서는 -> 혼잡제어를 하지 않지만 그냥 두면 안 됨 -> 라우터에서 drop(cut시킴)기능을 수행함(그래야 네트워크가 안정화됨)

 

전송계층 TCP, UDP

네트워크 계층 IP

 

 

728x90

댓글