OSI 7계층과 TCP/IP 4계층

OSI_TCP_IP

TCP/IP 4계층에 대한 이해에 앞서, OSI 7계층에 대한 이해가 필요하다. OSI는 각종 시스템간의 연결을 위하여 ISO(International Organization for Standardization)에서 제안한 모델로써, OSI(Open System Interconnection Reference Model)에서 유추할수 있듯이, 시스템에 상관없이 서로의 시스템이 연결될수 있도록 만들어주는 모델이다.

위와 같이 7개의 계층으로 나눈 이유는, 각 계층에 대한 캡술화와 은닉이 가능하기 때문이다. 캡슐화, 은닉에 대한 개념은 C++ 에서 공부한 것과 유사한 개념일이다. 예를 들어, 서비스 개발자는 Application Layer 와 Presentation Layer만 신경쓰면 된다.

OSI 7계층대로 모델을 구현할 경우, Layer가 증가할수록 비용 증가하고 성능 저하가 따를 수 있습니다.(개발자가 힘들어짐…) 반면에, TCP/IP 5계층은 빠르고 성능의 저하가 덜하고 구현이 상대적으로 쉽다.

Application Layer(Application)

OSI 모델의 Application layer와 Presentation layer를 포함하는 애플리케이션 계층은 다른 계층과 달리 서버와 클라이언트의 개념을 갖고 있습니다. 서버와 클라이언트의 데이터 송수신을 위해 HTTP, FTP, Telnet, SMTP 등의 프로토콜이 사용됩니다.

Transport Layer(TCP)

계층의 이름에서 알수 있듯이 원하는 시스템까지 데이터를 전송하는 계층입니다. OSI 모델의 Session layer 과 Transport layer 를 포함하고 있으며, 각각의 시스템을 연결하고 TCP/UDP 프로토콜을 이용하여 데이터를 전송한다.

Internet Layer(IP)

데이터를 정의하고 데이터의 경로를 배정하는 일(라우팅)을 담당합니다. Internet Layer에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 ARP(Address Resolution Protocol)을 사용합니다. 이는 어떤 하드웨어의 MAC 주소로 보내야 할지를 결정하는 프로토콜입니다(하드웨어의 주소 자체는 어떤 컴퓨터로 보내야 할지 결정할 수 없기 때문).

Physical Layer(Ethernet)

물리적 계층, 즉 이더넷 카드와 같은 하드웨어를 담당합니다. Ethernet의 동작 방식을 알기 위해서는 CSMA/CD에 대한 이해가 필요합니다. CSMA(Carrier Sense Multiple Access)는 다중 신호 감지가 가능합니다. 신호를 보내고 있지 않을 때 데이터를 전송(Broadcasting으로 전송)합니다. CD(Collision Detection)는 충돌 감지를 뜻하고, 충돌을 방지하기 위해 랜덤 시간동안 기다렸다가 재전송합니다. 하드웨어 주소를 결정하기 위한 프로토콜 Ethernet은 dest가 ff:ff:ff:ff:ff:ff 이므로 브로드캐스팅해서 정보를 전송한다. src는 자신의 하드웨어 맥주소이다. 캐싱을 통해서 매번 생성되지 않도록 주소를 관리한다.