IT recording...
[Network] 2. OSI 7계층 본문
[그림과 함께 편하게 보려면 여기로]
https://adorable-aspen-d23.notion.site/Network-2-OSI-7-3b0e36c05caa4141a6849045ec466af9
0. 현대 인터넷
1. OSI 7계층
- 국제표준화기구(ISO)에서 개발한 모델
- 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명
- 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것
- 물리,데이터 링크,네트워크,전송,세션,표현,응용 계층
- 왜 7계층으로 나눴나요?
- 통신이 일어나는 과정을 단계별로 알 수 있음
- 7단계 중 특정한 곳에 이상이 생기면 다른 단계와 독립적으로 그 단계만 수정할 수 있기 때문
- 예시
- 모든 PC에 문제가 있다→ 3계층 : 라우터의 문제 (PC방이라는 한 네트워크의 모든 컴퓨터에 이상이 있기 때문에 이 네트워크로 제대로 전달이 안된 것이라는 합리적인 추측 가능)
- → 1계층 : 광랜을 제공하는 회사의 회선 문제 (광랜은 모든 컴퓨터에 다 연결되어 있다.)
- 한 PC만 문제가 있다.
- 오버워치 소프트웨어에 문제가 있다. → 7계층
- 오버워치 소프트웨어에는 문제가 없고, 스위치에 문제가 있다. → 2계층
- PC방에서 오버워치를 하는데 연결이 끊겼다.
2. TCP/IP 4계층
- 링크,인터넷,전송,응용계층
- 세션,표현 계층의 경우는 응용프로그램에서 제공하는 경우가 많아 요즘은 5,6,7계층을 합쳐서 사용한다.
3. 프로토콜
- 메시지를 주고 받는 양식이나 규칙
- 통신규약
- 프로토콜은 왜 필요할까?
- 시스템 간 메시지를 주고 받을 때 한쪽에서 보낸 메시지를 이해할 수 있어야 한다.
- 통신 모델에서도 메시지를 주고 받으며 통신할 때 그 언어와 대화 방법에 대한 규칙이 있어야 의사소통이 가능하다.
- 프로토콜은 계층별로 다르게 존재한다.
- 구성요소
- 구문(Syntax) : 무엇을 전송할지
- 데이터의 형식(Format), 부호화(Coding), 신호 레벨(Signal Level) 등을 규정
- 의미(Semantics) : 어떻게 동작할지
- 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정
- 타이밍(Timing) : 언제 전송할지
- 통신 속도, 메시지의 순서 제어 등을 규정
- 구문(Syntax) : 무엇을 전송할지
4. 계층 별 데이터 단위, 프로토콜
데이터 단위 프로토콜
1. 물리 계층 | bit | DSL,ISDN | 두 대의 컴퓨터가 통신하려면? |
2. 데이터 링크 계층 | frame | PPP,Ethernet,Token ring, IEE 802.11(wifi) | 같은 네트워크 상에서 컴퓨터를 찾아가려면? |
3. 네트워크 계층 | datagram, packet | IP,ICMP,ARP,RIP,BGP | 해당하는 네트워크를 찾아가려면? |
4. 전송 계층 | segment | TCP,UDP,SCTP | 어떤 프로세스를 사용하는지 알려면? |
5. 세션 계층 | message | NetBIOS,TLS | |
6. 표현 계층 | message | ASCII,MPEG,JPEG,MIDI | |
7. 응용 계층 | message | HTTP,SMTP,FTP,SIP,Telnet | 프로토콜을 응용프로그램이 편하게 사용하도록 하려면? |
1. Physical Layer (물리 계층)
: 전기적, 기계적, 기능적인 특성을 이용해 통신 케이블로 데이터를 전송한다.
1. 두 대의 컴퓨터가 통신하려면?
- 장치 간 전기적 신호 전달
- 두 대의 컴퓨터가 통신하려면 0과1로 이루어진 bit를 보내야한다.
- But, 전선으로 bit를 주고받을 수는 없다.
- 주파수 0~무한대 어쩌구 저쩌구...
- ⇒ 아날로그 신호로 보내야 한다.
1. 전송 방법
: 데이터 프레임 내부의 각 bit를 한 노드에서 다음 노드로 실제로 이동
- 하드웨어적으로 구현
- Encoding : bit → 아날로그 신호
- Decoding : 아날로그 신호 → bit
- 결론
- 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고받을 수 있게 해주는 모듈
2. Data Link Layer (데이터 링크 계층)
: 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하며,
point to point 간 안전한 정보의 전달을 수행할 수 있도록 도와준다.
1. 여러 대의 컴퓨터가 통신하려면?
- 다 전선을 꽂아야 할까? → NO! 매우 비효율적, 전선 하나를 가지고 여러 컴퓨터와 통신하는 방법을 알아보자
- ⇒ 스위치, 브릿지
- 여러 컴퓨터를 연결, 데이터를 주고 받을 수 있다.
- 메시지에 목적지를 설정하여 지정된 수신자만 받을 수 있게 한다.
- 하나의 스위치로 연결된 컴퓨터들 = 네트워크
- ⇒ 스위치, 브릿지
1. 전송 방법
- 데이터를 Frame단위로 한 네트워크 요소에서 → 이웃 네트워크 요소로 전송한다.
- 전송, 수신 MAC주소를 붙여서 Frame 생성
- 출발지의 MAC주소, 가장 가까운 라우터의 MAC주소를 붙인다.
- 왜 B의 MAC주소를 붙이지 않을까?
- A는 B의 맥주소를 모르기 대문
- → DHCP, ARP를 통해 라우터의 IP를 바꿔 IP를 맥주소로 변환한 후에 라우터에 대한 도착지 맥어드레스를 만들어 헤더에 넣어줌
- 왜 B의 MAC주소를 붙이지 않을까?
- 출발지의 MAC주소, 가장 가까운 라우터의 MAC주소를 붙인다.
- 물리 계층을 이용해 전송 (하드웨어 적으로 구현)
- 전송, 수신 MAC주소를 붙여서 Frame 생성
- Ethernet 을 이용하여 데이터 전송
- LAN에서 데이터를 주고받기 위한 규칙
- 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고받을 때 사용
- 비연결성 모드, 전송속도 10Mbps 이상
- MAC 주소 이용 (Media Access Control Address)
- 컴퓨터 네트워크에서 각각의 기기를 구분하기 위해 사용하는 주소, 이더넷의 물리적인 주소
- Node-to-Node, Point-to-Point 프레임 전송
- 이더넷 유형유형 번호 (16진수) 프로토콜
0800 IPv4 0806 ARP 8035 RARP 814C SNMP over Ethernet 86DD IPv6 - : 이더넷으로 전송되는 상위 계층 프로토콜의 종류
- 단점
- 허브에 연결된 컴퓨터들이 동시에 데이터를 보낸다면 충돌(collision) 발생 가능
- LAN에서 데이터를 주고받기 위한 규칙
2. 기능
- CRC 기반 오류제어
- 프레임에 오류가 나면 바로 버려버린다.
- cf) 전송 계층의 오류 제어는 다시 요청, 복구까지 수행
- 프레임에 오류가 나면 바로 버려버린다.
- CRC 기반 흐름제어
- 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아내며, 수정하는 데 필요한 기능적, 절차적 수단을 제공한다.
3. Nework Layer (네트워크 계층)
: 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)
1. 서로 다른 네트워크 계층이 통신을 하려면?
1. 전송방법
- 서로 다른 네트워크(inter-network)들은 라우터로 연결되어 있다.
- Routing : IP주소를 이용해서 길을 찾는다.
- Forwarding : 자신 다음 라우터에게 데이터를 넘겨준다.
- 송신IP, 수신IP 를 붙여 패킷을 만든다.
- 라우터를 통해 이동할 경로를 선택하여 IP주소를 지정하고, 해당 경로에 따라 패킷을 전달한다.
- 운영체제의 커널에 소프트웨어적으로 구현
2. 프로토콜
- IP 프로토콜 (Internet Protocol)
- 패킷 교환 네트워크에서 정보를 주고 받는데 사용하는 정보 위주의 규약
- 호스트의 주소지정과 패킷 분할 및 조립 기능 담당
- 최선 서비스
- 신뢰성 및 흐름제어 기능이 전혀 없다. (패킷의 완전한 전달 보장X)
- 이에 TCP와 같은 상위 전송계층에 의존한다.
- ICMP (Internet Control Message Protocol)
- TCP/IP에서 IP패킷을 처리할 때 발생되는 문제를 알림(오류보고)
- IGMP (Internet Group Management Protocol)
- IP 멀티캐스트를 실현하기 위한 통신 프로토콜
3. 기능
- 흐름제어
- 오류제어
- 세그먼테이션
4. Transport Layer (전송 계층)
이제 인터넷 상의 모든 컴퓨터가 통신할 수 있게 되었다. 포트를 열어서 응용프로그램들이 전송을 할 수 있게 한다.
종단간(end to end) 통신을 다루는 최하위 계층이다.
1. 어떤 데이터를 어떤 프로세스에게 줘야 할지 컴퓨터는 어떻게 알 수 있을까?
1. 전송방법
- 송신자가 데이터를 보낼 때 데이터를 받을 수신자 컴퓨터에 있는 프로세스의 포트 번호를 붙여서 보낸다.
- 포트 번호를 이용하여 도착지 컴퓨터의 최종 도착지인 프로세스에까지 데이터가 도달하게 하는 모듈
- 운영체제의 커널에 소프트웨어적으로 구현
2. 프로토콜
- TCP,UDP
- [Network] 3. TCP, UDP
3. 기능
- 오류제어
- 손실이 있다면 재요청, 복구
- 흐름제어
- Stop&Wait, Sliding window
- 손실제어
- Segmentation
- 메시지가 클 경우 나눠서 전달한다.
- Segmentation
5,6 세션 계층, 표현 계층
5. 세션 계층
- 데이터 교환의 경계와 동기화 제공
- 연결이 손실되면 연결 복구를 시도
- 오랜 시간 연결이 되지 않으면 세션 계층의 프로토콜이 연결을 닫고 다시 연결 재개
- 응용 계층에서 지원하거나 어플리케이션 개발자가 직접 개발해야 한다.
- TCP/IP 세션을 만들고 없애는 책임
6. 표현 계층
- 데이터의 암호화, 복호화와 같이 응용 계층에서 교환되는 데이터의 의미를 해석하는 계층
- 응용 프로그램 ↔ 네트워크 간 정해진 형식대로 데이터를 변환, 표현한다.
- 응용 계층에서 지원하거나 어플리케이션 개발자가 직접 개발해야 한다.
- 파일 인코딩, 명령어를 포장, 압축, 암호화
- 예시해당 데이터가 TEXT인지, 그림인지, GIF인지 JPG인지의 구분 등이 표현 계층의 몫이다.
- 예를 들면, EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것,
7. Application Layer (응용 계층)
: 우리가 사용하는 브라우저나, 메일 프로그램은 해당 응용 계층 프로토콜을 쉽게 사용할 수 있게 해주는 응용 프로그램이다.
- 통신의 최종 목적지, 응용 프로그램들이 통신으로 활용하는 계층
- 사용자에게 가장 가까운 계층
- 웹 브라우저, 응용 프로그램을 통해 사용자와 직접적으로 상호작용
- 사용자 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스 제공
- 전체적인 통신흐름 그림
1. 프로토콜
- HTTP, FTP, SMTP, POP3, IMAP, Telnet 등
참고
https://shlee0882.tistory.com/110
'Network' 카테고리의 다른 글
[Network] 6. 대칭키/공개키 (0) | 2022.05.16 |
---|---|
[Network] 5. DNS Round Robin (0) | 2022.05.16 |
[Network] 4. HTTP (0) | 2022.05.16 |
[Network] 3. TCP, UDP (0) | 2022.05.16 |
[Network] 1. 인터넷 (0) | 2022.05.16 |
Comments