IP 프로토콜에서 발생되었던 문제들을 해결하기 위해서 TCP가 나타났다.
( UDP는 해결은 안 되지만 도와주는 부분이 있음)
네트워크를 공부하면 OSI 7 계층이란 것을 본 경험이 있을 것이다.
TCP/ IP model에서는 그림과 같이 OSI 계층을 묶어서 4 계층으로 만들었다.
위의 그림은 이해가 안가기 때문에 아래와 같이 예시를 들게 되면
Hello라는 메시지를 보내게 되면 TCP 계층은 TCP 정보를 씌우게 되고 한 칸 내려서 IP계층으로 보내게 되고
TCP 정보를 씌운 데이터에 IP 정보를 위에 씌우게 된다. 이런 식으로 LAN 드라이버까지 내린 다음 인터넷으로 보내게 된다.
**웹 개발할 때는 물론 다 배우면 좋지만 그러면 밑도 끝도 없기 때문에 IP 프로토콜까지 깊이 있게 공부하면 된다.**
TCP / IP
IP 패킷 안에 TCP에 대한 정보가 들어간다고 위에서 말했다.
내용은 위와 같은 정보들이 들어가 있고 IP 프로토콜의 한계점을 위 정보들로 해결하게 된다.
TCP의 특징
전송 제어 프로토콜 (Transmission Control Protocol)
- 연결 지향 - TCP 3 way handshake (가상 연결)
- 연결을 하고 메시지를 보냄 (서버가 꺼졌을 때 보내는 것 해결)
- 데이터 전달 보증
- 패킷이 누락되면 알 수 있음
- 데이터를 전송하면 데이터를 잘 받았다는 메시지를 보내게 된다.
- 순서 보장
- TCP 패킷 안에는 순서 정보가 있기 때문에
패킷이 순서가 잘못되면 서버가 클라이언트에게 순서가 잘못된 패킷부터 다시 보내라고 요청한다.
- TCP 패킷 안에는 순서 정보가 있기 때문에
- 신뢰할 수 있는 프로토콜
- 현재는 대부분 TCP를 사용한다.
TCP 3 way handshake
- SYN (synchronized): 서버에 연결 요청을 보냄
- SYN + ACK (acknowledge) : 서버에서 '알겠어'라는 메시지를 보내면서 서버 -> 클라이언트로 연결 요청
- ACK : 클라이언트도 '알겠어'라고 수락함.
이 방식을 사용하게 되면 클라이언트도 서버를 믿을 수 있고, 서버도 클라이언트를 믿을 수 있게 된다.
3 way handshake를 통해서 연결 한 뒤에 데이터를 전송하게 된다.
3 way handshake는 논리적으로 연결된 것이고, 전용 랜선처럼 물리적으로 연결된 것이 아니다!
UDP (User Datagram Protocol)
특징
- 기능이 거의 없음 ( 하얀 도화지에 비유 가능하다.)
- 연결 지향( TCP 3 way handshake)이/가 아니다
- 데이터의 전달 보증이 안 된다.
- 순서가 보장되지 않는다.
- 단순하고, 빠르다.
- 결론
- IP와 거의 같지만 PORT와 Checksum 정도만 추가된 것과 같다.
- Application에서 추가적인 작업이 필요하다.
'HTTP > HTTP강의' 카테고리의 다른 글
DNS 엄청난 기초 (0) | 2023.06.07 |
---|---|
[모든 개발자를 위한 HTTP 웹 기본] PORT (1) | 2022.09.19 |
[모든 개발자를 위한 HTTP 웹 기본] IP (1) | 2022.09.19 |