OSI 7계층과 TCP/IP 4계층
1. OSI 7계층
- 물리계층 (Physical Layer)
- 전기적, 기계적, 기능적인 특성을 이용하여 통신 케이블로 데이터를 전송한다.
- 전선을 통해 전기신호를 아날로그 신호로 보내 0과 1로 나눠서 비트단위로 표시 한다.
- 단지 데이터를 전달만 할 뿐 전송하려는, 또는 받으려는 데이터가 무엇인지는 전혀 신경쓰지 않는다.
- 대표적인 장치로 통신 케이블, 리피터, 허브 등이 있다.
- 물리적으로 연결된 두 대의 컴퓨터가 0과 1로 나열 주고 받을 수 있게 해준다.
- 여러 컴퓨터와 연결시켜서 한가지 허브로 연결시켜서 여러대의 컴퓨터를 통신 시켜줄 수 있다. 이걸 인터넷이라고 함
- 하드웨어적으로 구성되어 있음 . (통신 케이블)
- 데이터 링크계층 (DataLink Layer)
- 물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 수행을 도와주는 역할을 한다.
- 맥 주소(MAC Address)를 가지고 통신한다.
- 전송되는 단위를 프레임(frame)이라고 하며, 대표적인 장비로는 브리지, 스위치 등이 있다.
- 이더넷, 투 포인트 프로토콜(HDLC, ADCCP), 근거리 네트워크 프로토콜(LLC, ALOHA) 등이 있다.
- 여러대의 컴퓨터가 데이터를 주고 받을 때 0과 1로 표시되어 있는 데이터를 구분시켜줌 시작:0000 , 데이터 0101 , 종료 1111 으로 표시하며 시그널을 구분해준다.
- 주로 랜카드에 구현되어있다. (하드웨어)
- 네트워크 계층 (Network Layer)
- 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)을 한다.
- 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해주는 역할을 한다.
- 대표적인 장비로 라우터, (라우팅 기능이 포함된)스위치가 있으며, IP 주소를 사용한다.
- 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층이다.
- 다른 컴퓨터로 으로 보내는 패킷단위의 데이터를 IP주소 구분하여 시켜서 전송함 보냄 (캡슐화 안에 IP주소, 0101로 이뤄 진 데이터)
- 각 라우터를 통해 IP를 구분하여 배송을 보내줌
- 운영체제의 커널에 소프트웨어적으로 구성되어있음
- 전송 계층 (Transport Layer)
- 통신을 활성화하기 위한 계층이다. 보통 TCP 프로토콜을 사용하며, 포트를 열어서 응용 프로그램을 전송한다.
- 양 끝단의 사용자들이 신뢰성 있는 데이터를 주고 받을 수 있게 해 주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 한다.
- 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고 연결 기반이다. 전송 계층의 패킷들이 유효한지 확인하고 전송 실패한 패킷을 다시 전송함을 의미한다.
- 받은 데이터를 어떤 프로세스로 보내는지 확인시켜준다 . 송신 컴퓨터가 받은 데이터를 어떤 프로세스에서 사용하는지 확인시켜준 후 데이터를 올바른 프로세스에 분배 (데이터 앞에 포트번호를 붙여줌, 네이버의 경우는 NAVER.COM:80 이라는 포트를 가지고있음 )
- 운영체제의 커널에 소프트웨어적으로 구성되어있음
- 세션 계층 (Session Layer)
- 데이터가 통신하기 위한 논리적인 연결을 한다.
- 세션 설정, 유지, 종료, 전송 중단시 복구 등의 기능이 있다.
- 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다.
- TCP/IP 세션을 만들고 없애는 책임을 진다.
- 세션의 토큰 관리 및 연결을 관리해준다.
- 표현 계층 (Presentation Layer)
- 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고, 암호화한다.
- 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로 덜어준다.
- 예를 들면, EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔주는 것
- 해당 데이터가 텍스트인지, 그림인지, GIF인지, JPG인지의 구분 등의 역할을 한다.
- 데이터를 인코딩해주는 계층 받은 데이터에 대한 통역기 역활을 한다.
- 응용 계층 (Application Layer)
- 최종 목적지로서 HTTP, FTP, SMTP, Telnet 등과 같은 프로토콜이 있다.
- 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
- 네트워크 소프트웨어의 UI 부분, 사용자의 입출력 부분을 담당한다
2.TCP/IP
TCP/IP 소켓프로그래밍 -
Transport Layer 에서 제공하는 api를 활용해서 통신 가능한 프로그램을 만드는 것
- 네트워크 인터페이스 계층 (Network Interface, Network Access)
- OSI 계층의 1,2 계층에 해당된다.
- TCP/IP 패킷을 네트워크 매체로 전달하는 것과 네트워크 매체에서 TCP/IP 패킷을 받아들이는 과정을 담당한다.
- 에러 검출 기능과 패킷의 프레임화 기능을 수행한다.
- 네트워크 접근 방법, 프레임 포맷, 매체에 대해 독립적으로 동작하도록 설계되었다.
- 흐름 제어(Flow Control)는 Header(MAC)에서, 에러 제어(Error Control)는 Tailer(CRC)에서 수행한다.
- 인터넷 계층 (Internet)
- OSI 계층에서 3계층에 해당된다.
- 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공한다.
- 논리적 주소인 IP를 이용한 노드간 전송과 라우팅 기능을 처리하게 된다.
- 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공한다.
- 핵심 프로토콜은 IP, ARP, ICMP, IGMP 등이 있다.
- 전송 계층 (Transport)
- OSI 계층에서 3,4 계층에 해당된다.
- 자료의 송수신을 담당한다.
- 어플리케이션 계층의 세션과 데이터그램 통신서비스를 제공한다.
- TCP/UDP가 핵심 프로토콜이다. TCP/UDP에 대한 구분을 하고 데이터에 대한 제어 정보가 여기에 포함된다.
- 응용 프로그램 계층 (Application)
- 다른 계층의 서비스에 접근할 수 있게 하는 어플리케이션을 제공한다.
- 어플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의한다.
- TCP/IP 네트워크를 사용하거나 관리하는 것을 도와주는 프로토콜이다.
- 대표적인 프로토콜 - http로 인코딩 디코딩 가능
'CS > 네트워크' 카테고리의 다른 글
인증과 인가 ( 쿠키/세션/토큰/JWT) (0) | 2023.01.06 |
---|---|
IPv4와 IPv6 (0) | 2023.01.05 |
도메인과 DNS (0) | 2023.01.05 |
프로토콜(protocol)이란? (0) | 2023.01.03 |
동기와 비동기 (0) | 2023.01.03 |