Network 개념 정리
TCP/IP 계층
TCP/IP는 인터넷에서 컴퓨터들이 서로 정보를 주고받는데, 통신 규약(프로토콜)의 모음이다.
-
1계층 - Network Access Layer OSI 7계층에서 물리계층과 데이터링크 계층에 해당한다. 하드웨어적인 요소와 관련되는 모든 것을 지원하는 계층이다. 송신측 컴퓨터의 경우, 상위계층으로 전달받은 패킷에 물리적인 주소는 MAC 주소를 가지고 헤더를 추가하여 만들고, 프레임을 하위계층인 물리계층으로 전달한다.
수신측 컴퓨터의 경우, 데이터 링크 계층에서 추가된 헤더를 제거하여 상위 계층인 네트워크 계층으로 전달한다. - 2계층 - Internet Layer
OSI 7계층에서 네트워크 계층에 해당한다. 인터넷 계층의 주요기능은 상위 계층으로부터 받은 데이터에 IP 패킷 헤더를 붙여
IP 패킷을 만들고 전송하는 것이다.
IP 패킷을 전송하는 기능 및 라우팅 기능을 담당
- 3계층 - Transport Layer
OSI 7계층에서 전송계층에 해당한다. 네트워크 양단의 송수신 호스트 사이에서 신뢰성있는 전송 긴으을 제공한다. 시스템의 논리주소와 포트를 가지고 있어서 각 상위 계층의 프로세스를 연결하여 통신한다.
TCP와 UDP 프로토콜을 이용하여 통신 노드간의 연결을 제어하고, 송수신을 담당한다.
- 4계층 - Application Layer
OSI 7계층에서 세션계층, 프레젠테이션 계층, 어플리케이션 계층에 해당한다.
TCP/IP 기반의 응용 프로그램을 구분할 때 사용한다. HTTP, FTP, Telnet 등등
OSI 7계층
이 모형을 이용하면, 네트워크 시스템에서 일어나는 일들을 계층적으로 구분하여 쉽게 이해할 수 있다. 네트워크 관리자는 어떤 문제의 원인이 어디에 있는지 범위를 좁힐 수 있다. (물리적 문제 or 응용 프로그램과 관련있는 문제인지 파악할 수 있다)
- 1계층 - 물리 계층(Physical)
시스템의 전기적, 물리적 표현 을 나타낸다. 케이블 종류, 무선 주파수 링크, 전압, 물리 배치등이 포함된다. 네트워킹 문제가 발생하면 많은 네트워크 전문가가 물리 계층으로 바로 가서 케이블 연결 여부나 라우터, 스위치 또는 플러그 등을 확인한다.
전기적, 기계적 특성을 이용하여 통신 케이블로 전기적 신호를 전송(신호로 변환하여 전송하는 계층)
- 2계층 - 데이터 링크 계층(Data Link)
두 개의 직접 연결된 노드간 데이터 전송을 제공하며 물리 계층의 오류 수정도 처리한다. 접근제어(Mac) 계층과 논리적 연결제어(LLC) 계층으로 두 가지로 구분된다.
물리적인 연결을 통하여 두 장치간의 신뢰성있는 정보 전송을 담당한다.
전송 단위 : Frame
물리적 매체에 패킷 데이터를 실어보내는 계층
- 3계층 - 네트워크 계층(Network)
라우터 기능의 대부분이 이 계층에서 자리잡는다. 다른 여러 라우터를 통해 라우팅을 비롯한 패킷 전달을 담당한다.
전송 단위 : Packet
네트워크를 논리적으로 구분하고 연결하는 계층 - 논리적 주소 사용
- 4계층 - 전송 계층(Transport)
전송 계층은 최종 시스템 및 호스트 간의 데이터 전송 조율을 담당한다. 보낼 데이터의 용량과 속도, 목적지 등을 처리한다.
TCP(전송 제어 프로토콜)이 잘 알려져있으며, TCP는 인터넷 프로토콜(IP) 위에 구축되는데 흔히 TCP/IP로 알려져 있다. 기기의 IP 주소가 여기서 작동한다.
종단간 신뢰성있고 정확한 데이터 전송을 담당한다.
전송 단위 : Segment
서비스를 구분하고 데이터의 전송 방식을 담당하는 계층(TCP/UDP)
- 5계층 - 세션 계층(Session)
2대의 기기, 컴퓨터 또는 서버간에 “대화”가 필요하면 세션(Session)을 만들어야 한다. 설정, 조율(시스템의 응답 대기 시간), 세션 마지막에 응용 프로그램 간의 종료 등의 기능이 필요하다.
통신 장치 간 상호작용 및 동기화를 제공
연결 세션에서 데이터 교환, 에러 발생시 복구 관리 👉전송 단위 : Message
데이터의 변환 작업을 하는 계층
- 6계층 - 표현 계층(Presentation)
응용 계층의 데이터 표현에서 독립적인 부분을 나타낸다. 응용 프로그램이나 네트워크를 위해 데이터를 표현 하는 것이다.
EX) 데이터를 안전하게 전송하기 위해 암호화, 복호화하는 것인데 이 작업이 6계층에서 처리된다.
데이터 표현에 차이가 있는 응용처리에서 제어구조를 제공(ASCII, JPEG, MPEG 등의 번역)
데이터의 변환 작업을 하는 계층
- 7계층 - 응용 계층(Application)
최종 사용자에게 가장 가까운 계층이다.
사용자와 가장 밀접한 계층.. 인터페이스 역할
User Interface를 제공하는 계층
TCP V.S UDP
TCP - Transmission Control Protocol
연결형 서비스를 지원하는 전송계층 프로토콜로 인터넷 환경에서 기본으로 사용한다. 호스트간 신뢰성 있는 데이터 전달 과 흐름제어 및 혼잡제어 등을 제공하는 전송계층
특징
- 가상 회선 연결방식, 연결형 서비스를 제공
- 높은 신뢰성(Sequence Number, Ack Number를 통해 신뢰성 보장)
- 연결의 설정(3-way handshaking)과 해제(4-way handshaking)
- 데이터 흐름제어(수신자 버퍼 오버플로우 방지) 및 혼잡 제어(네트워크 내 패킷 수가 과도하게 증가하는 현상 방지)
- 전이중, 점대점 서비스
소켓 통신 과정
- 서버 : 소켓을 생성, 주소 할당, 연결 요청 기다림, 요청에 대한 응답
- 클라이언트 : 소켓을 생성, 주소 할당, 연결 요청
UDP - User Datagram Protocol
비연결형 서비스를 지원하는 전송계층 프로토콜로 사용자 데이터그램형 프로토콜이다.
인터넷상에서 서로 정보를 주고받을 때, 정보를 보낸다는 신호나 받는다는 신호 절차를 거치지 않고 보내는 쪽에서 일방적으로 데이터를 전달하는 통신 프로토콜이다. 보내는 쪽에서는 받는 쪽이 데이터를 받았는지 아닌지 확인할 수 없고, 확인할 필요도 없도록 만들어졌다.
특징
- 비연결형(port만 확인하여 소켓을 식별하고 송수신함)
- 패킷의 오버헤드가 적어 네트워크 부하 감소
- 비신뢰성
- 오류 검출(헤더에 오류 검출 필드를 포함하여 무결성 검사)
- TCP의 handshaking 같은 연결 설정이 필요없다
- DNS, NFS, SNMP, RIP등 사용
소켓 통신 과정
- 서버 : 소켓을 생성, 주소 할당, 데이터를 송수신
- 클라이언트 : 소켓 생성 후 데이터 수신