컴퓨터는 3층 집, 그리고 그 안에서 동작하는 TCP/IP
컴퓨터는 기본적으로 3층집으로 분류해볼 수 있다.
User mode 와 Kernel mode 나누고, Kernel 아래단으로 S/W 와 H/W로 나눠볼 수 있다. 예를 들어, NIC 라는 LAN 카드가 있다고 가정해보자. 이 LAN 카드라는 하드웨어를 제어하기위해서 전용 소프트웨어가 필요한데 이걸 드라이버라고 불린다. 그리고 그 위에 이제 커널 관련 소프트웨어가 있는데 그 중에 TCP와 IP 관련 소프트웨어가 있다. 그리고 그 위에 유저단에서는 크롬이라는 브라우저가 있다고 해보자.
유저단의 어플리케이션이 커널 구성요소에 접근하기위해선 커널에서 길을 열어준다. 유저와 커널의 위계는 거의 인간과 신의 관계와 비슷할 정도로 커널 모드의 영역의 위상이 높기 때문에 유저단은 커널에서 정해준 인터페이스를 타고 커널 영역을 건드려야한다.
이때 그 인터페이스를 파일형태로 되어있고, TCP/IP를 추상화시킨 그 인터페이스 파일은 보통 Socket 이라고 불린다. 이 소켓을 열었다 닫았다라는 건 그 파일을 열였다 닫았다라는 표현과 같고, 그것을 여는 주체는 프로세스라고 보면 된다.
이 얘기를 OSI 7 Layer 로 연결지어 그림으로 표현해본다면, 위와 같이 표현될 수 있다. 일단, L5 ~ L7 계층 까지는 유저단에 해당되는 얘기이기에 프로세스 수준에서 설명 가능하다. 어떤 프로그램이 가지는 특징에 해당되는 얘기이다.
그리고 전송계층에 해당 되는 TCP와 네트워크 계층에 해당되는 IP는 운영체제에서 구현된다.
그 다음, 드라이버 영역은 커널 영역 소프트웨어와 하드웨어의 일정 수준의 펌웨어까지 합친 것이 데이터링크라고 생각해볼 수 있다. NIC은 완전히 물리영역이라고 보면된다.
출처
외워서 끝내는 네트워크 핵심이론 - 기초 강의 | 널널한 개발자 - 인프런
널널한 개발자 | TCP/IP에서 HTTP까지! 네트워크에 대한 기본 이론이 부족한 분들이 '외워서'라도 전공 이론을 이해하고자 희망하는 분들을 위해 준비한 강의입니다. 할 수 있습니다!, 네트워크, 외
www.inflearn.com