TCP/IP 모델(updated 모델) ver.
물리 계층(1계층): 데이터를 주고받기 위해서는 전자신호를 아날로그신호로 바꾸어서 전송해야 함. 전자신호를 아날로그신호로 바꾸는 과정을 1계층에서 함.
물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고받을 수 있게 해주는 모듈.
encoding: 0과 1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려 보냄.
deconding: 아날로그 신호가 들어오면 0과 1의 나열로 해석.
//PHY 칩에 구현되어 있음.(하드웨어)
데이터링크 계층(2계층): 같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고받기 위해서 필요한 모듈.
Framing: 데이터링크계층에 속하는 작업들 중 하나.(0000 데이터(0010110~) 1111)<-이런식으로 데이터를 구분할 수 있도록 앞 뒤에 0과1의 수열을 붙이는 것.
스위치: 데이터를 보낼 수 있도록 다른 컴퓨터를 연결하는 것.
라우터: 스위치와 스위치를 연결해서 다른 네트워크가 연결할 수 있도록 해주는 것.
인터넷: 전 세계의 컴퓨터를 연결한 것.
//랜카드에 구현되어 있음.(하드웨어)
네트워크 계층(3계층): 수많은 네트워크들의 연결로 이루어지는 inter-network 속에서 어딘가에 있는 목적지 컴퓨터로 데이터를 전송하기 위해, IP 주소를 이용해서 길을 찾고(routing) 자신 다음의 라우터에게 데이터를 넘겨주는 것(forwarding).
IP주소: 각 컴퓨터들이 갖는 고유한 주소.
패킷: 네트워크 계층에서 전송되는 단위.
//운영체제 커널에 구현되어 있음.(소프트웨어)
전송 계층(4계층): port 번호를 사용하여 도착지 컴퓨터의 최종 도착지인 프로세스 까지 데이터가 도달하게 하는 모듈.
포트 번호: 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야하는 정수 값.
//운영체제 커널에 구현되어 있음.(소프트웨어)
응용 계층(5,6,7계층-TCP/IP모델): 최종 목적지. 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행.
TCP/IP 소켓 프로그래밍: 운영체제의 전송 계층에서 제공하는 API를 활용해서 통신 가능한 프로그램을 만드는 것.