참조: https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC#
TCP에 대해 알아보기전에, 인터넷 프로토콜의 4계층에 먼저 알아보겠다.
애플리케이션 계층 -> 전송 계층 -> 인터넷 계층 -> 네트워크 인터페이스 계층 순으로
애플리케이션이 전달하는 데이터를 감싸준뒤에 서버로 보낸다고 생각하면된다.
이번 포스팅은 전송계층에 해당하는 TCP가 해주는 기능을 살펴볼것입니다.
TCP가 해주는 역할은 IP가 해내지 못하는 한계점을 보완하여 정보전달의 신뢰성을 부여해주는 역할을 한다.
https://taehoung0102.tistory.com/148
IP가 해결하지못한 전송 제어, 순서, 검증정보를 해결해준다.
TCP는 이를 어떻게 해결해주는걸까?
첫째로 IP가 해결하지못한 전송 제어부분을 3 way handshake 방식으로 해결해준다.
데이터를 보내기 전에
1. 클라이언트 ->서버 : 접속 요청
2. 서버 -> 클라이언트 : 요청수락 , 접속 요청
3. 클라이언트 : 요청수락
과정을 거친다. 이런 과정을 통해 서버가 현재 작동이 가능한 상태인지 점검을 할수있고,
요청을 수락하지 못하는 상태라면 클라이언트는 접속이 안되는걸 확인하고 데이터를 보내지 않을수있다.
IP가 해결하지 못한 2번째 한계점인, 패킷 소실 문제를 TCP는 그림과 같이 해결한다.
클라이언트가 데이터를 전송했으면, 서버가 받았으면 데이터를 받았다는 응답을 보내게 되어있다.
만약, 서버가 데이터를 받지 못했다면 클라이언트는 요청이 제대로 안되는걸 확인하고 다시 보낼것입니다.
IP가 해결하지 못한 3번째 한계점, 데이터 순서 문제를 TCP는 다음과 같이 해결한다.
데이터를 보내다가 데이터 순서가 꼬여버렷을때, TCP는 데이터가 엉키게된 부분을 찾아내서 클라이언트에게
다시 요청을 보냅니다.
그림을 예시로 보자면, 패킷 2번부터 데이터 순서 오류가 발생했으므로 TCP는 클라이언트로
패킷 2부터 다시 보내라고 요청을 보내게됩니다.
----------------------------------------------------------------------------------------------------------------
TCP에겐 또다른 정보인 Port가 존재하는데
Port는 같은 IP내에서 보내는 다양한 요청을 구분하기 위한 주소입니다.
예시를 들자면, 같은 IP내(내 컴퓨터)에서 게임 서버 연결, 화상통화, 웹 브라우저 요청, 음악 듣기, 동영상 시청 등등
다양한 요청이 일어나는데 이 요청을 각각 구분하기 위한게 Port 입니다.
게임 요청 Port는 서버의 게임서버 Port로
화상통화 요청 Port는 서버의 화상통화 Port로
웹 브라우저 요청 Port는 웹브라우저 Port로 연결해주는 역할을합니다.
따라서, 현재는 대부분 TCP정보와 IP정보를 합친 TCP/IP 패킷을 사용하여 인터넷 통신을 합니다.
'네트워크+HTTP' 카테고리의 다른 글
HTTP 표현 헤더 (0) | 2022.03.09 |
---|---|
HTTP 상태코드 (0) | 2022.03.09 |
HTTP 메소드 (0) | 2022.01.16 |
HTTP의 특징 (0) | 2022.01.13 |
네트워크 : IP에 관하여 (0) | 2022.01.09 |