본문 바로가기

프로그래밍/CS

[study] IP (Internet Protocol)

프로토콜

: 프로토콜이란, 서로 다른 장비간 원활하게 네트워크 통신을 하기 위해 만든 규칙, 통신규약을 의미한다.

한국인과 일본인이 소통하기 위해 영어라는 공용어를 사용한 것처럼,

서로다른 장비가 네트워크로 소통하기 위해서는 프로토콜을 사용하여 통신한다.

 

TCP/IP 란?

: 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 모음을 'Internet Protocol Suite'

라 하는데, 이 모음 중에서 가장 많이 쓰이는 두가지가 TCPIP 이다. 이 둘을 묶어서 TCP/IP로 통칭한다.

TCP/IP는 패킷 통신 방식의 인터넷 프로토콜인 IP, 전송 프로토콜인 TCP로 이뤄져 있다.

 

OSI 7계층 & TCP/IP 4계층

: TCP/IP 를 알아보기에 앞서, OSI 7계층이라는 것을 먼저 알아보도록 하겠다.

OSI 7계층이란, 네트워크에서 통신이 일어나는 과정을 7단계로 나눠 단계별로 통신과정을 파악하기 위해

계층을 나눠둔 것이다. 이는 특정 계층에서 이상이 생기면 해당 계층만 고치면 된다는 장점이 있다.

 

 

위의 왼쪽 사진처럼, 7단계로 구분되어 계층을 나눠둔 OSI 7계층이 있으며,

오른쪽의 TCP/IP 4계층은 기존의 OSI 7계층을 간결하게 만든 모델이다.

 

우선 OSI 계층에서 각 계층 별로 간단하게 살펴보자.

● 1계층 - 물리 계층 : 전기적, 기계적, 기능적인 특성을 이용해 통신 케이블로 데이터를 전송함.

● 2계층 - 데이터 링크 계층 : 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 정보전달을 수행하도록 도움.

● 3계층 - 네트워크 계층 : 데이터를 목적지까지 가장 안전하고 빠르게 전달함. (= Routing)

● 4계층 - 전송 계층 : 통신을 활성화하기 위한 계층. 포트를 열어 응용프로그램들이 전송할 수 있게 해줌.

● 5계층 - 세션 계층 : 데이터가 통신하기 위한 논리적인 연결을 해줌.

● 6계층 - 표현 계층 : 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하며, 암호화 해줌.

● 7계층 - 응용 계층 : 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행.

 

이러한 모델을 단순화하여, TCP/IP에서는 응용/전송/인터넷/네트워크 엑세스 계층으로 분류한다.


네트워크 통신 과정

: 네트워크 통신을 위해서는 '패킷'이라는 데이터 전송 단위를 만들어 사용하는데,

위에서 설명한 'TCP/IP 모델'을 통해 이 패킷이라는 것을 만들고 해석한다.

패킷이 잘 전달되었는지 확인하기 위해 위 계층의 최하위 계층부터 순서대로 해석하여 오류를 검출한다.

 

기본적인 네트워크 통신의 과정은,

패킷을 만들어서 전달하는 '송신자 (Sender)' 와,

패킷을 받아서 해석하는 '수신자 (Receiver)'가 존재하며,

송신자는 패킷을 TCP/IP 최상위 계층부터 순서대로 만들어서 전송하고,

수신자는 받은 패킷을 TCP/IP 최하위 계층부터 순서대로 해석하는 과정을 거친다.


IP (Internet Protocol)

: TCP/IP 모델의 인터넷 계층에서 사용되는 프로토콜이며,

네트워크에 존재하는 각 장비들을 식별하기 위한 주소를 나타내는 역할이다.

이를 통해 장비들이 출발지와 목적지를 식별하여 패킷을 주고받으며,

초기에 만들어진 IPv4 와 이를 보완하기 위해 만들어진 IPv6 가 있다.

 

IPv4는 32비트의 길이를 가지며, 약 43억개 (2^32)의 주소를 가질 수 있으며,

IPv6는 128비트의 길이를 가지며, 43억 x 43억 x 43억 x 43억 (2^128) 의 주소를 가질 수 있다.

(IPv4의 주소 부족 문제를 해결하기 위해 만들어진 IPv6)

우리가 일반적으로 보는 221.24.12.65 와 같은 모양이 IPv4이며,

2011:0db2:23a2:021a:2512:8a2e:0320:7332 와 같은 모양은 IPv6이다.

 

 

위의 사진은 IPv4 이며, 8비트로 이루어진 0~255 까지의 정수 4개가 모여 32 비트의 한 IP를 만든다.

'프로그래밍 > CS' 카테고리의 다른 글

[study] LAN & WAN  (0) 2025.02.21
[study] 서브넷 마스크 (Subnet mask)  (0) 2025.02.20
[study] 뮤텍스 (Mutex)  (1) 2024.09.19
[study] 스레드 (Thread)  (2) 2024.08.31
[study] 프로세스 (Process)  (2) 2024.06.02
Recent Posts
Popular Posts
Recent Comments