네트워크/데이터 통신 기본 이론 - OSI 7 계층 , TCP/IP 4 계층
원격 통신시 거치는 과정을 계층으로 보기좋게 나타낸 것이 OSI 7 계층과 TCP/IP 4계층 이다.
(표준 위원회가 있다고 하고 거기서 무슨 일을 한다고는 하던데 잘은 모르겠다.)
위로 갈수록 소프트웨어에 가까워지며,
아래로 갈수록 하드웨어에 가까워지는 특성은 같다.
실제로 네트워크 프로그래밍시에 가장 많이 신경을 쓰게 될 부분은
TCP 계층의 Application 과 Transport 계층이다.
각 계층은 통신목적지를 구분하기 위해 각기 다른 주소방식을 사용하며,
또한 각기 다른 통신규약(프로토콜)을 이용한다.
TCP/IP 4계층의 Network Interface 와 OSI 7의 Datalink Layer는 MAC 어드레스를 사용하며,
이 계층에서 사용하는 Protocol을 통칭해 Ethernet 프로토콜이라고 한다.
(혹은 MAC 프로토콜이라고도 한다.)
Ethernet, Ethernet 2, FastEthernet 등이 있다.
TCP/IP 4계층의 Internet 계층, OSI 7의 Network Layer는 IP 주소를 사용하며,
이 계층에서 사용하는 Protocol을 통칭해 IP 프로토콜이라고 한다.
워낙 IPv4헤더를 IP 헤더라고 부르다보니 혼동을 고려해 어떤 사람들은 L3 프로토콜이라고도 부르는듯 ?
IP 프로토콜은 수많은 종류가 있지만 ICMP, ARP, RARP, IPv4, IPv6 등이 있다.
사실 프로토콜이 엄청나게 많다. 아래를 참고.
https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers
TCP/IP 4계층의 Transport 계층, OSI 7의 Transport Layer는 Port 번호를 이용하며,
이 계층에서 사용하는 Protocol을 통칭해 Transport 프로토콜(전송 프로토콜)이라고 한다.
많지만 보통은 TCP, UDP 를 많이 보게 된다.
Application 의 Protocol 은 상당히 여러가지 의미를 가질 수 있는데, Windows의 Handle이나
OS에서 관리하는 Process ID등이 될 수 있을 것 이다.
또한 소켓통신시 자체적으로 정한 Protocol Code 등도 여기에 속한다고 볼 수 있다.
이렇게 애매한 이유는 TCP/IP 4계층에서는 OSI 7 Layer처럼 구분지어 놓지 않았기 때문이다.
A의 Application 과 B의 Application이 통신한다고 하자. 이때 'ABCD'라는 데이터를 전송하려 한다고 하자.
이때 'ABCD' 를 누구에게 어떻게 보낼지가 막막하다.
따라서 목적지를 특정하기 위한 주소체계를 이용하며,
이때에 각 계층이 수행하는 행동을 주소 특정의 개념으로만 간단하게만 나타내어보자.
Transport : 목적지가 어떤 Port를 사용하고있는지 기입한다.
Internet : 목적지의 IP Adress는?
Ethernet : 목적지의 Mac Adress는?
A의 Application에서 만들어진 'ABCD' 라는 데이터는 점차 하위 계층으로 내려가며
Transport , Internet , Network Interface 에서 사용하는 주소방식과 Protocol에 관련된 정보를 덧 붙여 나가며 ,
이를 각 계층의 Header라고 부른다. Header가 모두 준비되면 Data는 Wire 를 통해 나간다.
준비된 IP Address, Mac Address, 를 이용해 B의 머신을 찾고,
그 후 B의 Network Interface에 도착한다. (흔히들 패킷이 랜선으로 들어온다고 하지 않는가?)
목적지 Port 번호로 전달되고, B 의 App이 모든 하위계층의 헤더가 없어진 뒤 깔끔한 'ABCD'를 받게되면
전송은 마무리된다.
각 계층의 Header는 주소의 특정 이외에도 다양한 일을 수행 하며 이는 관련된 서적을 참고하자.
'네트워크 및 데이터통신 이론' 카테고리의 다른 글
L3 - ARP(Address Resolution Protocol) (0) | 2021.12.30 |
---|---|
L4 - TCP Sliding Window (0) | 2021.12.29 |
L4 - TCP Header 구조 (0) | 2021.12.27 |
L4 - TCP의 Connect 과정시 3Way-Hand Shake (0) | 2021.12.23 |
네트워크/데이터 통신 기본 이론 - Socket (0) | 2021.12.22 |
댓글
이 글 공유하기
다른 글
-
L4 - TCP Sliding Window
L4 - TCP Sliding Window
2021.12.29 -
L4 - TCP Header 구조
L4 - TCP Header 구조
2021.12.27 -
L4 - TCP의 Connect 과정시 3Way-Hand Shake
L4 - TCP의 Connect 과정시 3Way-Hand Shake
2021.12.23 -
네트워크/데이터 통신 기본 이론 - Socket
네트워크/데이터 통신 기본 이론 - Socket
2021.12.22