카테고리 없음

[TIL] IP, TCP, UDP

Twisted 2024. 10. 30. 00:10

 

IP란?

-인터넷 프로토콜은 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약

- 인터넷 통신 시에는 지정한 IP 주소에 데이터를 Packet이라는 단위로 전달

 

 

Packet?

패킷(Packet)은 소스 IP, 대상 IP를 포함하고 있어서 어떤 컴퓨터에 데이터를 전송할지 판별할 수 있다.

크게 헤더, 페이로드, 트레일러(수신여부 포함)로 구분되고, 데이터를 주기만 하는것이 아닌 받고 응답한다.

 

 

IP방식의 문제점..

1. ip로 데이터를 보내기 때문에 어떤 프로그램에서 사용을 하는 데이터인지 알 수가 없다..

2. 수신 상태에 상관없이 데이터를 보낸다 ( 비연결성 ) 

3. 중간에 패킷이 소실되어도 손상여부를 송,수신 둘다 알 수 없다. 재전송도 하지 않는다.

 

그래서 신뢰성 문제를 해결하기 위해 나온게??

 

TCP( Transmission Control Protocol)

서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜

 

얘는 어떻게 신뢰성이 있을까?  -> 3 Way HandShake 방식을 이용

1번을 통해 '나 접속할게?' 하면 2번을 통해 답을 전달해준다. 

'알겠어'라는 ACK를 받게되면 연결이 되지만 ACK가 없는경우 연결되지 않는다.

이런식으로 SYN과 ACK를 이용하여 검증을 확실하게 진행하게 된다.

 

이러한 TCP는 신뢰성 문제는 해결할 수 있었지만 연결 과정, 데이터 전송에 시간이 많이 소요 

-> 비용 증가 및 속도 저하

 

 

그럼 이를 해결하기 위해 나온게 뭘까?

 

 

UDP(User Datagram Protocol)

사용자 데이터그램 프로토콜로, 데이터그램 방식을 사용하는 프로토콜

 

UDP의 특징으로는 뭐가 있을까?

1. IP 방식과 거의 비슷하다. 

-> 3 way handshake를 이용하지 않는다.(비신뢰성)

 

2. 추가적인 기능이 거의 없다.

-> 기능이 없고 연결하지 않는대신 속도가 빠르다.

 

3. IP와 차이점으로 PORT 가 존재한다.

 

4. 데이터 무결성 검사 → 체크섬(Checksum)을 포함하고 있다.

-> 잘못된 데이터 전송 X

 

 

그럼 또 PORT는 뭔데?

 

 

 

PORT

같은 IP 내에서 프로세스 구분을 하기 위해서 사용

이런식으로 같은 IP를 가지고 있지만 PORT번호를 통해서 구분 지을 수 있다.

 

 

마지막으로 TCP/IP의 패킷 구조에 대해서 알아보면 

 

이전 IP에서 나온 패킷과 다르게 PORT번호도 포함하고 있는 모습을 볼 수 있었다.