TCP는 신뢰성 전송이라고 한다. 이를 위해 가지는 기능들을 알아보자.
일단 TCP는 Transmission Control Protocol로 OSI Layer 4계층인 Transport(전송) 계층이고, 연결 지향 서비스로 무결성을 보장해 준다.
4계층 Transport Layer |
흐름 제어와 오류제어, 메세지를 전달함, (process 간의 통신 ex. 카카오톡은 카카오톡 끼리 통신) | 프로토콜: TCP(Transmission Control Protocol), UDP(User Datagram Protocol) |
첫째, TCP는 3-way HandShaking을 통해 세션을 맺고 통신을 시작한다. SYN을 전송하고, SYN+ACK를 받아와 내가 보낸 패킷을 상대가 받은지 확인 하고, 그 다음 패킷을 보내는 과정을 거친다. 이렇게 TCP 연결을 하고, 오류제어와 흐름제어가 가능해진다.
둘째, 통신 과정에서 오류가 생겼는지 확인하기 위해서 TCP 헤더에선 Checksum 필드를 가진다. 해당 패킷이 손상되었을 경우 ACK flag를 0으로 하고 재전송 해준다.
셋째, 통신을 위하여 Sequence Number를 가진다. 데이터에 순차적으로 번호를 매겨서 보내는 것으로 중간에 어긋난 패킷을 확인하고 순서를 맞춘다. TCP flow control에 활용된다.
넷째, 통신과정에서 ACK 패킷이 돌아오는 것에 응답 시간을 매겨 그 시간을 넘기면(Time Out) 재전송을 한다.
다섯번째, TCP flow control - 흐름제어라는 뜻으로 각각의 기기마다 받을 수 있는 버퍼의 크기(Window Size)가 다르다. 상대의 Window Size에 맞춰서 전송 속도를 조절한다.
여섯번째, 체증(혼잡) 제어라는 뜻으로 많은 데이터가 몰려서 막히거나, Duplicated ACK가 3개 이상 오거나, 패킷에 Time Out이 걸렸을 때 해결 해주는 기능으로 AIMD, Slow Start, Fast Retransmit가 있다.
'대학교 수업 > 데이터 통신 네트워크' 카테고리의 다른 글
[데이터 통신 네트워크] TCP/IP의 Congestion Control (0) | 2022.06.23 |
---|---|
[데이터 통신 네트워크] TCP 연결 설정 및 해제 과정 (0) | 2022.06.23 |
[데이터 통신 네트워크] 네트워크 용어 정리 (0) | 2022.04.27 |
[데이터 통신 네트워크] Token과 Token Bus, Token Ring (0) | 2022.04.27 |
[데이터 통신 네트워크] ISDN (0) | 2022.04.27 |