본문 바로가기
서버/리눅스

[Linux] TCP/IP란?

by 코딩히어로 2021. 9. 13.
728x90

안녕하세요 오늘은 서버 통신에서 가장 기본적일 수 있는 통신 방식인 TCP/IP 통신에 대해 알아보겠습니다.

 

TCP/IP란 서버를 만드는데 반드시 알아야 하는 개념이란 점 꼭 명심하세요

 

자 그럼 서버를 접하는데 있어서 TCP/IP 통신이란 말을 정말 많이 들어보셨을겁니다.

 

전문적인 설명으로는 아래와 같이 설명될 수 있겠네요.

 

TCP(Transmission Control Protocol) :

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

 

IP(Internet Protocol) : 

IP는 컴퓨터들의 네트워크 상에서 구분되기 위한 예를들면 실생활의 우편주소와 같은 주소입니다.

 

자 여기서 더 알기 쉽게 설명하면 아래와 같이 되겠네요.

 

 

위그림과 같이 IP는 데이터가 찾아갈 주소, 

 

TCP는 찾아온 데이터가 형식에 맞게 왔는지 확인하는 필터 라고 정의할 수 있겠네요.

 

와이건뭐 너무쉽게 설명했는데..자뻑인가요? 너무쉬우면 안되니 전문적으로 한번 TCP/IP에 대해 파고들어 봅시다..

 

이제부턴 심호한 내용이니 심호흡한번식들 하시고 준비됬나요?

 

먼저 TCP/IP는 데이터를 전송하고 받기 위해 계층화를 이루고 있으며 이 계층구조에 따라 데이터를 송수신합니다.

 

 

Host A컴퓨터에서 B로 데이터를 전송하기 위해 네트워크상 데이터를 캡슐화(알집압축과 같은) 하여 Host B 컴퓨터로 

 

전송하고 B컴퓨터에서는 캡슐화된 데이터를 역 다중화(알집해제와 같은) 하여 데이터를 수신받게 됩니다.

 

자 그럼 위 그림에서 송수신시 나뉘어져 있는 계층구조에 대해 알고 넘어가겠습니다.

 

데이터 링크 계층

- 패킷을 전달하는 물리적 인터페이스와 관련된 하드웨어(실제 물리적 기계 및 PCB 장치)를 제어하는 기능 수행

- TCP/IP 데이터 전송 프로토콜에 들어가는 Mac Address(하드웨어 고유값) 를 획득하는 프로토콜

 

네트워크 계층

- 네트워크 상의 패킷 이동의 제어 기능을 수행하는 프로토콜 (전송 요청을 라우터에 보내면 알아서 해당 목적지에 요청)

 

전송 계층

- 두 Host PC 간에 종단 간 연결을 맺고 데이터를 전달할 수 있는 기능을 수행

 

응용 계층

- Telnet,FTP,SMTP,SMTP,HTTP 등 TCP/IP 프로토콜을 이용하는 서비스 계층

 

여러 계층중 중요한 계층에 대해 간단하게 알아보았고 더 깊게 들어가면 너무 내용이 많아지므로 아 이런정도의 기능을

 

수행하는구나 정도로만 알고 넘어가시면 좋을거 같습니다.

 

다음으로는 TCP/IP가 두 PC간에 통신할 때 연결되는 과정에 대해 알아보겠습니다.

 

 

1. Host A 에서 B 컴퓨터에 연결을 시도하기 위해 SYN(Code 1000) 이라는 Check 메세지를 전송

 

2. Host B 에서는 SYN(Code 1000) 메시지를 통해 A에서 자신에게 연결을 시도할 것이라는 상황을 인지

 

3. Host B 에서 A 컴퓨터에게 ACK(Code 1001)과 SYN(Code 4000) 이라고 전송

   - ACK Code 는 수신된 SYN Code +1 을 해준 값

   - SYN Code 4000인 이유는 Host B 도 A에 연결을 하는 것이기 때문에 새로운 Code 로 전송

 

4. Host A 에서 SYN(4000)을 통해 연결 가능을 확인 한 후 ACK(4001)을 보내 연결을 하게 된다

   - ACK Code 는 수신된 SYN Code +1 을 해준 값

 

이렇게 TCP/IP는 3단계를 거쳐 연결 되기 때문에 3-way-Handshaking이라 한다.

 

오늘은 TCP/IP 에 대한 맛보기 정도의 내용으로 자세한 내용은 책 한권으로도 부족하다.

 

다음시간에는 LAN과 WAN 에 대해 공부해보겠습니다.

728x90
반응형

댓글