실제 인터넷에서 사용되는 TCP/IP는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화한 것
탄생 배경 - 초기 여러 정보 통신 업체 장비들은 자신의 업체 장비들끼리만 연결이 되어 호환성x - 모든 시스템들의 상호 연결에 있어 문제가 없도록 표준을 정한것이 OSI 7계층
계층을 나눈 이유 - 통신이 일어나는 과정을 단계별로 파악 할 수 있기 때문 ▶ 흐름을 한눈에 알아보기 쉽고, 이해하기 쉬움 ▶ 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고 이상이 생긴 단계만 고칠 수 있기 때문
2. OSI 7계층 단계
프로토콜을 포함한 OSI 7계층
OSI 7계층은 응용, 표현, 세션, 전송, 네트워크, 데이터링크, 물리계층으로 나뉨
전송 시 7계층에서 1계층으로 각각의 층마다 인식 할 수 있어야 하는데 헤더를 붙임(캡슐화)
수신시 1계층에서 7계층으로 헤더를 떼어냄(디캡슐화)
출발지에서 데이터가 전송될때 헤더가 추가되는데 2계층에서만 오류제어를 위해 꼬리부분에 추가됨
물리계층에서 1,0의 신호가 되어 전송매체(동축케이블, 광섬유 등)을 통해 전송
2-1. 물리계층(Physical Layer)
7계층 중 최하위 계층
전기적, 기계적, 기능적인 특성을 이용해 데이터를 전송
데이터는 0과 1의 비트열 ▶ 전기적으로 On, Off의 전기적 신호 상태로 이루어져 해당 계층은 데이터만 전달 (어떤 데이터인지, 어떤 에러가 있는지 신경x) ▶ 알고리즘x, 오류제어 기능x
장비 : 케이블, 리피터, 허브
2-2. 데이터링크 계층(Data-Link Layer)
물리적인 연결을 통하여 인접한 두 장치간의 신뢰성 있는 정보 전송을 담당(Point -To -Point)
안전한 정보의 전달(오류나 재전송하는 기능 존재) ▶CRC기반의 오류 제어와 흐름제어 필요
MAC주소를 통해 통신 ▶주소값은 물리적으로 할당받는데, 이는 네트워크 카드가 만들어질 때부터 MAC address가 정해져 있다는 뜻 (주소체계는 계층이 없는 단일 구조, ex)이더넷) ▶브릿지나 스위치를 통해 MAC주소를 가지고 물리계층에서 받은 정보 전달
전송 데이터 단위 : Frame
장비 : 브릿지, 스위치
2-3. 네트워크 계층(Network Layer)
여러개의 노드를 거칠때마다 경로를 찾아주는 역할 ▶ 다양한 길이의 데이터를 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단을 제공
기능 - 라우팅 기능을 가지고 있음(최적 경로 설정 가능) **라우팅 : 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능 - 세그멘테이션(segmentation / desegmentation) - 오류제어 - 인터네트워킹(Internetworking)
데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층
컴퓨터에게 데이터를 전송할 주소를 가지고 있어 통신가능 ex) IP주소가 네트워크 계층의 헤더
데이터 단위 : Packet
장비 : 라우터, L3 스위치
2-3-1. IP계층
TCP/IP 상에서 IP계층 : 네트워크 주소( IP주소 정의), IP패킷의 전달 및 라우팅을 담당하는 계층
OSI 7계층모델의 관점에서 보면 IP계층은 네트워크 계층에 해당 ▶패킷을 목적지까지 전달하는 역할 및 그에 수반되는 기타 역할
주요 역할 - 그 하위계층인 데이터 링크 계층의 하드웨어적인 특성에 관계없이 독립적인 역할 수행
프로토콜 - 패킷의 전달을 책임지는 IP - 패킷 전달 에러의 보고 및 진단을 위한 ICMP - 복잡한 네트워크에서 인터네트워킹을 위한 경로를 찾게해주는 라우팅 프로토콜
2-3-2. IP프로토콜
TCP/IP 기반의 인터넷 망을 통해 데이터그램의 전달을 담당하는 프로토콜
기능 - IP계층에서 IP패킷의 라우팅 대상이 됨(Routing) - IP주소 지정(Addressing)
특징 - 신뢰성(에러제어), 흐름제어 기능x ▶신뢰성을 확보하려면 IP계층 위의 TCP와 같은 상위 트랜스포트 계층에 의존 - Connectionless : 비연결성 데이터그램 방식으로 전달되는 프로토콜 - Unreliable : 패킷의 완전한 전달(소실, 중복, 지연, 순서 바뀜 등이 없게함)을 보장x - IP패킷 헤더 내 수신 및 발신 주소를 포함 (ex. IPv4헤더, IPv6헤더,IP주소) - IP헤더 내 바이트 전달 순서 : 최상위 바이트(MSB)를 먼저 보냄(Big-endian) - 경우에 따라, 단편화 필요 -TCP, UDP, ICMP, IGMP 등이 IP데이터그램에 실려서 전송
2-4. 전송계층(Transport Layer)
통신을 활성화하기 위한 계층 ▶TCP프로토콜 이용, 포트를 열어 응용프로그램들이 전송을 할 수 있게 함
종단 간 신뢰성 있고 정확한 데이터 전송을 담당
송신자와 수신자 간의 신뢰성있고 효율적인 데이터를 전송하기 위해 오류검출 및 복구, 흐름제어, 중복 검사 수행
데이터 전송을 위해 Port번호 사용(ex TCP, UDP)
데이터 단위 : Segment
2-4-1. TCP 프로토콜
OSI계층관점에서 전송계층(4계층)해당
양종단 호스트 내 프로세스 상호 간에 신뢰적인 연결지향성 서비스 제공 ▶IP의 비신뢰적인 최선형 서비스에다가 신뢰적인 연결지향성 서비스 제공 ▶신뢰적인 전송 보장함으로써 애플리케이션 구현이 쉬워짐
특징 - 신뢰성 있음(Reliable) ▶ 패킷 손실, 중복, 순서바뀜 등이 없도록 보장 ▶ TCP하위계층인 IP계층의 신뢰성 없는 서비스에 대해 다방면으로 신뢰성 제공 - 연결지향적(Connection-oriented) ▶ 느슨한 연결을 갖음 ▶ 연결 관리를 위한 연결설정 및 연결 해제 필요(TCP연결설정, TCP연결종료) 양단간 어플리케이션/ 프로세스는 TCP가 제공하는 연결성 회선을 통해 서로 통신
2-4-2. UDP 프로토콜
전송계층의 통신 프로토콜 중의 하나
신뢰성이 낮음, 완전성을 보증하지 않음 ▶ 가상회선 확립 필요x, 유연하며 효율적 응용 데이터 전송에 사용
특징 - 비연결성, 신뢰성x, 순서화x 데이터그램 서비스제공 ▶ 메시지가 도착했는지 확인x(확인응답x) ▶ 수신된 메시지의 순서를 맞추지 않음(순서제어x) ▶ 흐름 제어를 위한 피드백을 제공하지 않음(흐름제어x) ▶ 검사합을 제외한 특별한 오류 검출 및 제어 없음(오류제어 거의x) UDP를 사용하는 프로그램쪽에서는 오류제어기능을 스스로 갖추어야함 ▶ 데이터그램 지향의 전송계층용 프로토콜(논리적인 가상회선 연결x) - 실시간 응용 및 멀티태스킹 가능 ▶ 빠른 요청과 응답이 필요한 실시간 용용에 적합 ▶ 다수 지점에 전송가능(1:n) - 헤더 단순 ▶ UDP는 TCP처럼 16비트의 포트번호를 사용 ▶ 헤더는 고정크기 8바이트(TCP는 20바이트)만 사용 ▶ 헤더 처리에 많은 시간과 노력x
2-5. 세션계층(Session Layer)
통신 장치 간 상호작용및 동기화제공
세션 설정, 유지, 종료, 전송 중단 시 복구
동시 송수신방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신과 함께 체크 포인팅과 유효, 종료, 다시 시작과정 수행 ▶ TCP/ IP세션을 만들고 없애는 책임
통신을 하기위한 세션을 확립/ 유지/ 중단(운영체제가 해줌)
2-6. 표현계층(Presentation Layer)
데이터를 어떻게 표현할지 정하는 역할
기능 - 코드 간의 번역 담당 ex MIME인코딩이나 암호화 등의 동작들, 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔주는 것 해당 데이터가 text인지, 그림인지, gif인지, jpg인지 구분하는 것