능글맞은 구렁이

프로토콜 - TCP,IP,TCP/IP,UDP 본문

IT 상식

프로토콜 - TCP,IP,TCP/IP,UDP

보라색츄르 2022. 10. 12. 23:58

TCP(Transmission Control Protocol)

두 호스트가 교환하는 데이터와 승인 메세지의 형식을 정의하여, 서버와 클라이언트간의 데이터를 신뢰성있게 전달하기 위해 만들어진 규약이다.
컴퓨터와 컴퓨터를 이어주는 네트워크는 네트워크 선로를 통해 전달되는데, 이 선로는 광케이블일수도, 구리선일수도, 인공위성 일수도 있다. 어떤 선로인지에 따라 데이터를 전달하는 속도와 손실되는 데이터의 양이 달라지는데, 이는 데이터를 전달하는 과정에서 그 순서가 의도하지 않게 뒤바뀌거나 손실이 되어 전달될 수 있음을 뜻한다.

TCP는 데이터 패킷에 일련의 번호를 부여함으로써, 데이터 손실을 찾아내서 교정하고, 순서를 재조합하여 클라이언트에게 전달할 수 있게 해준다.

TCP의 장점은 복잡해서 신뢰성이 높다는 점이다

 

IP(Internet Protocol)

컴퓨터와 컴퓨터간에 데이터를 전송하기 위해서, 각 컴퓨터의 주소가 필요하다.

Internet Protocol은 4바이트로 이루어진 컴퓨터의 주소이며, xxx.xx.xxx.xx와 같이 3개의 마침표로 나뉘어진 숫자로 표시된다.

IP는 TCP와는 달리 데이터의 재조합이나 손실여부 확인이 불가능하며, 단지 데이터를 전달하는 역할만을 담당한다. 참고로 IP주소는 하드웨어 고유의 식별번호인 MAC주소와 다르게 임시적으로 다른 주체(통신사)에게 받는 주소이므로, 바뀔수 있다.

MAC(Media Access Control Address)
자신의 네트워크 내에서 기기를 특정하기 위한 번호이다. 
MAC 주소는 두 자릿수로 된 영숫자 6개를 5개의 콜론이나 하이픈으로 연결한것 것이다.

 

TCP/IP

IP기반에 TCP가 사용되서 이렇게 불린다고 한다.
TCP가 데이터의 추적을, IP가 배달을 처리한다고 보면 된다

 

방식

다음의 4가지 레이어로 구성되어 있다.

1. Application Layer
프로그램(브라우저)가 직접 인터액트하는 레이어이다. 데이터를 처음으로 받는 곳으로 다른 계층의 서비스에 접근할 수 있게 하는 애플리케이션을 제공한다. HTTP, SMTP등의 프로토콜을 가진다. TCP/UDP 기반의 응용 프로그램을 구현할때 사용한다.

 

2. Transport Layer
TCP가 있는 레이어. 포트를 통하여 Application 레이어가 TCP에게 데이터를 전송한다. 각각의 포트에 프로토콜을 지정할 수 있다. 예를 들어, HTTP는 80이라는 포트를 사용한다. 이로써, TCP는 어디에서 데이터가 오는지를 정확히 알 수 있다. 포트를 통해 받은 데이터들은 패킷이라는 작은 단위로 쪼개진다. 이 패킷들은 제각각 가장 빨리 전송될 수 있는 인터넷 루트를 찾아 떠난다. 각각의 패킷들은 TCP header에 어떤 순서로 재조합 할지에 관한 정보를 가진다.

 

3. Internet Layer
패킷들이 인터넷 레이어에 push된다. IP를 사용하여 데이터의 원천지(origin)과 목적지(destination)에 관한 정보를 첨부한다.

 

4. Network Layer
마지막으로 패킷들은 네트워크 레이어로 전송된다. 알맞은 하드웨어로 데이터가 전달되도록 MAC주소를 핸들링 하는것 뿐 아니라, 데이터 패킷을 전기신호로 변환하여 선로를 통하여 전달할 수 있게 준비 해준다.

 

UDP(User Datagram Protocol)

컴퓨터가 다른 컴퓨터와 데이터 통신을 하기 위한 규약(프로토콜)의 일종이다.

TCP는 두 호스트의 교환이지만 UDP는 일방적으로 보내는 방식의 통신프로토콜이다.

즉, UDP는 수신측과 접속 절차를 거치지 않고 송신측에서 일방적으로 데이터를 보내는 방식으로, 이러한 서비스를 무관계 서비스라고 한다. 따라서 UDP는 데이터의 수신에 대한 책임을 지지 않는다.

 

'IT 상식' 카테고리의 다른 글

의존성이란?  (0) 2024.01.22
ED25519와 RSA의 차이  (0) 2023.12.07
서버 - 하드웨어로서의 서버 (2)  (0) 2022.05.30
HOSTS - 파일 위치, 수정  (0) 2022.05.09
서버 - 하드웨어로서의 서버 (1)  (0) 2022.05.09
Comments