CS/24_2 컴퓨터통신

[4주차] OSI 모델과 TCP/IP Protocol Suite

안정민 2024. 10. 14. 20:21

1. OSI Reference Model

OSI : Open System Interconnection , 오픈 시스템 상호 연결 모델,  ISO가 만들었음
-> 가장 기본적인 레퍼런스 모델은 ISO-7498임
-> 의도 : 서로 다른 시스템 간의 열린 상호작용 시 하드웨어 혹은 소프트웨어의 로직을 각각 바꿀 필요를 없애기 위해
-> 즉 다양한 하드웨어 및 소프트웨어 기술이 모든 경계를 넘어 일관되게 작동하게 함
 
 
OSI Model : 네트워크 시스템 설계를 위한 계층 구조 프레임워크, 모든 종류의 컴퓨터 시스템 간의 통신을 가능하게 한다.
-> 컴퓨터 네트워킹을 위한 범용 언어를 제공하기 때문에 다양한 기술이 표준 프로토콜 또는 통신 규칙을 사용하여 통신할 수 있게 된다
-> OSI 모델의 계층은 소프트웨어 및 하드웨어 구성 요소 전반에 걸쳐 모든 유형의 네트워크 통신을 캡슐화
-> 두 개의 독립형 시스템이 현재 운영 계층에 기반한 표준화된 인터페이스 혹은 프로토콜을 통해 통신할 수 있도록 설계되었다.
 
Layered Architecture : 장치 A에서 장치 B로 메시지가 전송이 될 때 관련된 계층을 보여줍니다

Peer-to-Peer process : 피어 투 피어 프로세스, 각 기기에서 실행되는 프로세스로, 특정 계층에서 서로 통신한다
계층간 인터페이스 : 각 계층이 상위 계층에 제공해야 하는 정보와 서비스 
 
계층의 구성

계층 1, 2, 3  네트워크 지원 계층
데이터를 한 장치에서 다른 장치로 이동시키는 물리적인 측면을 다룸
계층 4 전송 계층
두 개의 하위 그룹 (1,2,3 계층과 5,6,7 계층) 을 연결하고, 하위계층에서 전송한 데이터가 상위 계층에서 사용할 수 있는 형식으로 올바르게 전송되었는지 보장한다
계층 5, 6, 7 사용자 지원 계층
관련 없는 소프트웨어 시스템 간의 상호 운용성을 제공한다

 
OSI 모델을 통한 교환

 
 
OSI 7계층

(1)
Physical Layer
물리 계층 



물리 계층은 물리적 통신 매체와 해당 매체를 통해 데이터를 전송하는 기술
기본적으로 데이터 통신은 광섬유케이블, 구리케이블 및 공기와 같은 다양한 물리적 채널을 통해 디지털 및 전자 신호를 전송하는 것이다
물리계층에는 Bluetooth, NFC, 데이터 전송 속도 등 채널과 밀접하게 관련된 기술 및 지표에 대한 표준이 포함된다

[역할]
- 네트워크 장비가 서로 통신할 수 있도록 인터페이스 및 매체의 물리적 특성을 정의
- 데이터 전송 시 비트가 신호로 변환되는데, 이와 같은 부호화 (encoding)을 정의
- Data Rate : 전송속도 (초당 전송가능한 비트 수) 및 비트주기 (단위시간 동안 유지되는 신호의 길이) 정의
- 비트 동기화 Bits Synchronization  : 클럭 동기화를 통해 비트 전송을 일관되게 유지, 클럭은 송신자와 수신자가 읽는 비트를 읽는 속도를 맞추는 역할
- 회선 구성 Line Configuration : 데이터 전송 경로를 설정하는 방법, 점대점 (point-to-point)이나 다중점(multipoint) 연결 방식 사용
- 물리적 접속형태 Topology : 네트워크 구조를 정의하며, 메시, 스타, 링, 버스와 같은 형태가 존재함, 네트워크 환경에 따라 적합한 구조를 선택한다.
- 데이터 전송 모드 Data transmission mode : 단방향(Simplex) , 반이중 (Half-duplex), 전이중(Full-duplex) 모드로 구분된다. 단방향은 한 방향으로만 통신이 가능한 방식, 반이중은 양방향 통신이 가능하지만 동시에 통신이 불가능한 방식, 전이중은 양방향 동시 통신이 가능한 방식
 
(2)
Data Link Layer
데이터 링크 계층

** Framing
** 물리적 주소 지정



오류 없이 한 스테이션에서 다음 스테이션으로 데이터 단위를 전달하는 역할
세 번째 레이어에서 데이터 단위를 수락하고 주소 및 기타 제어 정보가 포함된 의미있는 비트를 시작과 끝에 추가 (프레이밍)
즉, 데이터 패킷에 캡슐화된 디지털 신호인 데이터 프레임을 관리
주요 초점 = 데이터의 흐름 제어 및 오류 제어 ex) 이더넷

[역할]
- 프레이밍 Framing : 데이터 링크 계층은 비트스트림을 프레임이라는 단위로 나눔, 데이터가 네트워크를 통해 잘게 쪼개져 전송되며, 수신 측에서 데이터의 시작과 끝을 구분 가능하게 됨
- 물리주소지정 Addressing : 프레임마다 송신자와 수신자의 물리적 주소를 지정하여, 올바른 장비가 데이터를 받을 수 있게 함
- 흐름 데어 Flow Control : 송수신 속도를 조절하여 수신자가 과부하 상태에 빠지지 않도록 함
- 에러 제어 Error control : 데이터 전송 중 발생가능한 오류를 탐지하고 수정하는 기능, trailer 트레일러를 사용해 오류를 검사하고 필요할 경우 재전송 Retransmission을 통해 데이터 손실 방지
- 엑세스 제어 Access control : 네트워크에서 충돌 collision을 방지하기 위해 여러 장비가 동시에 네트워크에 접근하지 못하게 하여 데이터 충돌 방지

(3)
Network Layer
네트워크 계층

**Packet
**논리적 주소 지정 (IP)



여러 네트워크 링크를 통해 패킷의 소스-대상 (Source to destination) 간 전달을 담당 
두 가지 관련 서비스를 제공
라우팅 Routing 
- 패킷이 한 지점에서 다른 지점으로 이동할 때 최적의 경로를 선택하는 과정이다
- 네트워크 계층은 여러 경로가 존재할 때 가장 효율적인 경로를 결정하여 패킷을 전송하여, 패킷이 목적지까지 빠르게 전달될 수 있도록 돕는다
전환 Switching
- 물리적 링크 간의 임시 연결을 설정하여 네트워크 전송이 이루어지도록 한다
-전화통화와 유사하게 두 지점 사이에 연결을 생성하여 필요한 데이터가 목적지까지 전달될 수 있게 한다
- 데이터가 전송되는 동안에만 임시적으로 연결을 형성

[역할]
- 패킷의 출발지에서 목적지까지의 전달 (Source-to-destination)
- 논리적 주소(IP주소) 를 각 장치에 할당하여 네트워크 내에서 유일하게 식별 가능하도록 함
**물리적 주소와 달리 논리적 주소는 네트워크 계층에서 사용되며, 인터넷과 같은 네트워크를 통해 장치를 식별하고 데이터를 정확한 위치로 전송하는 데에 중요하다
- 라우팅 Routing : 데이터 패킷 이동에 최적의 경로 결정

(4)
Transport Layer
전송 계층

**Port 주소



어플리케이션 간의 안정적인 Source-to-destination (end-to-end) 전달을 담당한다
cf) 네트워크 계층은 개별 패킷의 관계를 무시

전송 계층의 주요 초점은 데이터 패킷이 손실이나 오류 없이 올바른 순서로 도착하는 것이나, 데이터 패킷을 원활하게 복구하는 것에 있다.
보통 흐름 제어와 오류 제어에 초점을 맞춘다.

[역할]
-종단 간 메시지 전달 (End-to-end message delivery) : 송수신자 간 데이터가 정확히 전달될 수 있도록, 데이터를 전달하는 동안 중간 노드에 상관 없이 전체 경로를 관리하며 데이터의 일관성을 유지한다.
- 포트 주소 port addressing : 여러 어플리케이션이 동시에 실행되는 컴퓨터에서, 특정 어플리케이션으로 데이터를 전달하기 위해 포트번호를 사용, 이를 통해 데이터가 정확한 어플리케이션으로 전달될 수 있게 된다
- 세그먼트화 및 재조립 Segmentation and reassembly : 데이터를 작은 세그먼트로 나누어 전송하고, 수신 측에서 다시 조립하여 원본데이터로 복원, 데이터 전송 효율성을 높이고 큰 데이터를 작은 단위로 나누어 관리 가능
- 연결 제어 connection control : 연결형 (TCP)과 비연결형 (UCP) 전송 방식을 지원하여 어플리케이션의 요구에 맞는 전송방식을 선택할 수 있도록 한다
- 흐름제어 Flow control : 송수신자 간의 데이터 전송 속도 조절 ->  과부하 방지, 네트워크 혼잡 감소, 안정적인 데이터 전송 보장
- 종단간 오류 제어 Error control between ends : 데이터를 전송하는 동안 발생 가능한 오류 탐지 및 수정, 종단간의 데이터 무결성을 보장

(5)
Session Layer
세션 계층

**동기화
**대화 제어



서로 다른 두 어플리케이션 간의 네트워크 조정 담당
일대일 어플리케이션 연결 및 동기화 충돌의 시작과 끝을 관리

[역할]
- 세션 관리 Session Management : 통신세션을 설정, 유지, 종료하는 과정 좐리
- ★동기화 Synchronization : 데이터 전송 중에 동기화 포인트 (Synchronization Points)를 삽입하여, 전송 중에 문제가 발생해도 해당 지점부터 다시 전송할 수 있도록 함
- ★대화 제어 Dialog control : "누가", "언제" 전송할 지 결정하는 기능을 수행, 세션 계층은 두 장치 간의 통신 순서를 조절하여 한 쪽이 데이터를 보낼 때 상대방이 받을 준비가 되어있는지 확인하여 양방향 통신을 원활하게 관리

(6)
Presentation Layer
표현 계층



통신 장치 간의 상호 운용성을 보장
보안 목적으로 데이터를 암호화 및 해독하고 전송 효율성을 위해 필요한 경우 데이터를 압축 및 확장할 책임이 있다
애플리케이션에서 전송하고 소비하는 데이터 자체의 구문과 관련이 있음 (HTML, Json, CSV 은 모두 해당 계층의 데이터 구조를 설명하는 모델링 언어이다)

[역할]
- 변환 Translation : 서로 다른 시스템 간의 데이터 표현 방식을 변환하여 호환성을 보장 
ex) A 장치는 ASCII 형식, B장치는 EBCDIC 형식 사용 시 표현 계층이 이들을 변환하여 서로 이해가 가능하도록 함
- 암호화 Encryption : 데이터 보안을 위한 암호화 수행, 송신 측에서는 데이터를 암호화하여 전송하고 수신 측에서는 이를 복호화
- 압축 Compression : 데이터 전송 효율성을 높이기 위해 압축을 수행, 네트워크 대역 폭을 절약하고, 전송 속도를 높일 수 있음

(7)
Application Layer
응용 계층

**엑세스 지원



사용자가 사람이든 소프트웨어든 네트워크에 엑세스할 수 있도록 사용자 인터페이스 지원
ex) 이메일, 원격 파일 엑세스 및 전송, 공유 db

 
 

2. TCP/IP Protocol Suite

5개의 층으로 구성이 되어있다 : Physical, datalink, network, transport, application
그니까 OSI 7계층에 상위 3개의 계층을 application으로 묶은 것

 

(1)
Physical Layer
물리 계층 
- 비트의 전기적 혹은 광학적인 표현
- 비트의 나열이기 때문에 데이터 포맷이 존재하지 않음
- 노드로 비트를 보내는 역할을 수행
- 데이터의 물리적 이동은 물리 계층에서만 이루어짐
- 데이터의 속도, 비트의 동기화, 토폴로지, 전송모드, 선로 구성 등에 관한 사항을 정의
(2)
Data Link Layer
데이터 링크 계층
- 프레임화, 송수신 주소 명시, 흐름 제어, 에러 제어, 접근 제어
(3)
네트워크 계층
Network Layer
- 데이터를 패킷 단위로 잘게 쪼개고 송수신 주소를 명시하고 라우팅을 수행
- 에러검사 X, 이미 데이터 링크에서 수행하기 때문이다
(4)
전송 계층
Transport Layer
- 특정 프로세스에 대한 주소 지정
- 메시지를 세그먼트 단위로 분할 및 조립
- 연결 제어, 종단간 흐름제어, 종단간 에러제어 수행
- TCP / UDP는 대표적인 전송 프로토콜   ***아래 설명
- end-to-end argument   ***아래 설명
(5) 
응용 계층
Application Layer
- FTP : 파일 송수신
- Telnet : 원격지 접속
- SMTP : 전자우편 송수신
- HTTP : 하이퍼텍스트 지원

 
UDP & TCP
전송 계층의 주요 프로토콜로, 각각 다른 방식으로 데이터를 전송한다
TCP (Transmission Control Protocol) 
- 신뢰성있는 스트림 전송 (연결형 프로토콜) : 데이터 전송 전 송수신자 간에 연결을 설정하여 신뢰성 보장, 이를 통해 데이터 전송 중에 손실이 발생할 경우 재전송을 통해 오류를 수정할 수 있음
- 데이터 스트림을 작은 단위 (세그먼트)로 분할 : 큰 데이터스트림을 세그먼트라는 작은 단위로 나누어 전송, 각 세그먼트에는 순서가 존재하며 수신자는 이를 통해 데이터를 원래 순서로 조립 가능
② UDP (User Datagram Protocol) 
- 비연결형 프로토콜 : 데이터를 전송하기 전에 연결을 설정하지 않으며, 각 데이터그램은 독립적으로 전송, 따라서 속도가 빠르지만 신뢰성은 낮다
- 간단한 오류제어 및 추가 정보 제공 : 포트주소, 체크섬오류제어, 데이터길이정보 를 포함하여 전송하며, TCP와 달리 데이터 신뢰성 보장을 위해 재전송을 하지 않음, 따라서 영상 스트리밍과 실시간 전송에 적합

  TCP UDP
이름 Transmission Control Protocol User Datagram Protocol
연결여부 연결형 프로토콜 비연결형 프로토콜
재전송여부 O X
분할 이름 세그먼트 데이터그램
분할 데이터 포함 정보 세그먼트의 순서 독립전송하는 대신 포트주소, 체크섬오류제어, 데이터길이정보 포함
속도 느림 빠름
신뢰성 높음 (재전송 O) 낮음 (재전송 X)
적합한 분야 신뢰성 중시 데이터 전송
(예: 파일 전송, 이메일)
속도 중시 데이터 전송
(예: 영상, 스트리밍, 온라인 게임)

 
 
End-to-end argument
- 분산 컴퓨터 시스템 설계에서 중요한 원칙 중 하나
- 시스템의 낮은 레벨(하드웨어 혹은 네트워크 장비)에 기능을 구현하는 대신, 높은 단계(어플리케이션 수준)에 기능을 구현하는 것이 더 효율적일 수 있다는 원칙
- 즉, 낮은 수준에서 기능을 배치할 경우 비용이 많이 들고, 비효율적일 수 있으며, 중복될 가능성이 존재
- 반면, 높은 수준에서 기능을 구현할 경우 더 나은 통제와 효율성을 얻을 수 있음
ex) 비트 오류 복구, 암호화를 통한 보안, 중복 메시지 제거, 시스템 충돌 복구 등과 같은 기능 -> 낮은 수준에서 처리하면 비용이 많이 들지만, 높은 수준에서 처리를 맡기면 시스템 전체에 걸쳐 더 신뢰성 있는 결과를 얻을 수 있음
 
- End-to-End Argument는 전체 시스템의 최적화를 위해 기능 배치에 대한 현명한 선택이 필요하다는 점을 강조
 
 

3. Addressing in TCP/IP

 

물리 주소
Physical Address
  • MAC 주소라고도 하며, 네트워크 인터페이스 카드(NIC)에 할당된 고유한 식별자입니다.
  • LAN(Local Area Network)와 같은 로컬 네트워크 내에서 장치를 식별하는 데 사용됩니다.
  • 일반적으로 48비트로 구성되며, 네트워크의 데이터 링크 계층에서 사용됩니다.
  • 네트워크 장치가 직접 연결된 경우, 물리 주소를 통해 서로를 인식하고 데이터를 전송할 수 있습니다.
논리적 주소
IP Address
  • 인터넷과 같은 큰 네트워크에서 장치를 식별하는 데 사용되는 논리적 주소입니다.
  • IPv4 주소(32비트)와 IPv6 주소(128비트)로 나뉩니다.
  • 네트워크 계층에서 사용되며, 데이터 패킷을 출발지에서 목적지까지 전달하는 데 필수적입니다.
  • IP 주소는 네트워크와 호스트 부분으로 나뉘며, 특정 네트워크 내에서 특정 장치를 구분합니다.
포트 주소
Port Address
  • 네트워크 내에서 특정 애플리케이션이나 서비스를 식별하는 데 사용됩니다.
  • 전송 계층(TCP/UDP)에서 사용되며, 하나의 IP 주소 내에서 여러 애플리케이션을 구분할 수 있게 합니다.
  • 예를 들어, HTTP는 일반적으로 포트 번호 80, HTTPS는 포트 번호 443을 사용합니다.
  • IP 주소가 네트워크 내의 장치를 식별한다면, 포트 주소는 해당 장치 내의 특정 프로세스를 식별합니다.