들어가며
인터넷을 통한 효율적인 데이터의 송수신 에 대한 회의를 통해 여러가지 프로토콜이 만들어졌고, 이것들은 계층구조를 통인해 상호간에 관계를 맞게되었다. 그것을 TCP/IP 프로토콜이라고한다. 이 프로토콜은 개방형 시스템이다.
개방형시스템이란? 표준을 감추는 것이 아닌 공개해 많은 사람들이 이것을 따르도록 하는 것을 말한다. 이로 인해 라우터 장비를 교체한다거나, 랜카드를 교체할 때 아무것도 신경쓰지 않고 타사 제품으로 교체할 수 있다. 모두 표준을 따르고 있기 때문이다.
계층 하나씩 살펴보기
TCP/IP 프로토콜 스택

TCP/IP프로토콜은 네 개로 계층화 되어있다. LINK계층, IP계층, 전송(TRANSPORT)계층, APPLICATION계층이다.
각 계층이 하는 일
다른 계층으로 나뉜 만큼 각 계층마다 하는 일이 모두 다르다.
LINK 계층
LINK 계층은 크게 물리적인 영역을 담당한다.LAN,WAN,MAN같은 네트워크 표준 프로토콜을 정의하는 영역이다. 호스트가 데이터를 주고받기위해선 물리적인 연결이 필요하다. 그것을 LINK 계층에서 담당한다.

IP 계층
LINK계층에서 물리적인 연결을 해주었으니, 이제 데이터를 보내야한다. IP계층은 이 데이터가 어느 경로를 통해 전송될것인가를 정해주는 계층이고, 그곳에서 사용하는 프로토콜이 IP(Internet Protocol)이다.
IP 자체는 비연결지향적이라 신뢰할 수 없는 프로토콜이다. 같은 곳으로 가더라도 전송마다 경로가 일정치 않고, 문제가 발생해도 해결해주지않는다. => 오류발생에 대비가 되어있지않다.
TRANSPORT 계층
전송계층은 IP계층에서 준 경로를 바탕으로 데이터를 전송하는 역할을 담당하고, 전송방법엔 TCP와 UDP가 존재한다.
TCP와 UDP에 대한 자세한 설명은 나중에 알아보도록하겠다.
APPLICATION 계층
지금까지 나온 계층들은 소켓 생성 시 자동으로 처리되는 과정들이다.우리는 최종적으로 소켓이라는 도구를 가지고 무언가를 만들면된다. 이렇게 무언가 만드는 과정에서 프로그램에 따라 클라이언트와 서버간 송수신 규칙들이 정해지는데, 이것을 APPLICATION 프로토콜이라고한다.
대부분의 네트워크 프로그래밍은 APPLICATION 프로토콜의 설계, 구현이 상당부분을 차지한다.
마무리
원래 OSI 7 계층으로 인해 7가지로 더욱 세분화되지만 오늘 알아본 TCP/IP프로토콜로 4가지로만 나뉘기도한다. 또한 오늘 공부한 내용은 어찌보면 내가 활용하진 않지만, 알아두면 이를 고려해 개발을 할 수 있으니 좋은 것 같다!
참고
'TCP-IP 소켓 프로그래밍' 카테고리의 다른 글
| TCP 소켓의 우아한 연결종료(Half-close)를 이해해보자 (1) | 2023.08.31 |
|---|---|
| UDP를 파헤치며 이해해보자 (0) | 2023.08.29 |
| TCP의 내부 동작 원리를 이해해보자 (1) | 2023.08.28 |
| 빅 엔디안(Big Endian)과 리틀 엔디안(Little Endian)을 이해해보자 (1) | 2023.08.26 |
| 전화기로 소켓(Socket) 프로그래밍을 이해해보자 (3) | 2023.08.25 |