Clolent

TCP 란 ?

Transport Layer에 있는 프로토콜의 한 종류


[ Stream Delivery ] 

- Stream Delivery 를 아주 잘 표현해준 사진 이다.

- 생산한 ( 보내기 위해 만든 ) 데이터를 Buffer에 쌓는다. ( 얼마나 만들든 상관없이 )

- TCP 의 RULE 에 따라 재포장한다.

- 즉 생산 = 전송이 아니란 뜻

- 어플리케이션에서 만든대로 나갈수도, 안 나갈수도 있음

- 여러분 이건 거짓말일수도 아닐수도있습니다 같은 말처럼 보이지만 진짜다

- 이 때, BUFFER 가 EMPTY, SENT, NOT SENT 로 구분되어 신뢰성을 담당하는것

- 이와 반대되는 방식은 Boundary Delivery로 만들어지는대로 그대로 전송해버린다.


[ Numbering System ] ( 역시 TCP가 한다 )

- 패킷에 번호를 부여하는 일 또한 TCP 가 하고 있는데 일단 시작번호는 Random

- 1000 byte 단위로 끊는다고 칠때, 시작이 10001 이라면 끝은 11000 !

- 그럼 다음 패킷의 시작은 11001 이고 그 끝은 12000 일 것이다. 참 쉽다


TCP 는 신뢰성을 책임진다고 했다.

- 앞서 BUFFER 에서 책임진다 했던 신뢰성을 보다 확실히 책임지기 위해서 응답이 필요한 법이다. 즉 보냈으면 받았다, 못받았다 응답을 해줘야 다시 보내던가 다음걸 보내던가 할 것 아닌가. 인간관계에서도 중요하다

- 두가지 방식이 있다.

기호1번 : Selective ACK

1번을 보내면 나 1번 받았다 ! 

2번을 보내면 나 2번 받았다 ! 하는 방식

기호2번 : Cumulative ACK

1번을 보내면, 이제 2번보내줘 !

2번을 보내면, 이제 3번 보내줘! 하는 방식

- Cumulative ACK 가 채택 되어있다.

Checksum

- 패리티 비트 마냥, 건네 받은 값이 이상이 없는지 확인하는 녀석으로 후에, 더 깊숙이 다룬다.


SYN : 클라이언트가 보내는 신호로 나 이제 요청한다! 하는 뜻

ACK : 위의 기술 되어있던대로 다음껄 달라는 것

FIN : 이제 끝 냅시다.


SYN 은 번호 1개 소모 

ACK 은 데이터가 없으면 값 소모 X

FIN 은 번호 1개 소모


이와 같은 규칙을 기억하고 밑의 그림을 통해 이해하자


댓글 로드 중…

블로그 정보

Clolent - 커피물조절달인

최근에 게시된 글