OSI Layer 7
✅ OSI Layer 7
통신을 7단계로 표준화하여 효울성을 높이기 위함.
7계층을 이용하여 네트워크 상에서 데이터를 전송할 때 필요한 정보들을 헤더로 넣어주는 개념
OSI?
Open Systems Interconnection
Why divide into 7 layers?
Can acknowledge how communication works step by step
If there is a problem with a certain layer, easier to fix
왜 layer인가?
header가 층처럼 앞에 계속 쌓이기 때문입니다.
7계층에서 a를 감싸고 6계층에서 b로 감싸고 5계층에서 c로 감싸고…
c(b(a))…
왜 계속 header에 계속 쌓나요?
가장 안쪽에 있는 메세지 a는 앞에 header을 깐 사람만 볼 수 있음
a는 7계층에서 생성한 데이터니까 a는 7계층에서만 확인 가능하다.
까는 과정을 줄여서 data latency 줄인다.
대표적으로 SSL같은 경우는 6계층에 있어서, 7계층은 6계층의 데이터를 까야 7계층을 확인할 수 있음.
그래서 6계층에서 데이터 암호화를 수행
대표적으로 7계층에 대한 보안
» 꼭 필요한 부분에서, 꼭 필요한 만큼만 까서 확인하고자 하는 것이 네트워크의 특징
동일한 레이어끼리만 영향을 주고받을 수 있습니다.
한 레이어의 프로토콜만 동일하다면, 다른 레이어는 상관 없다!
HTTP는 TCP로도 소통이 가능하고 UDP로도 소통이 가능한데, 따라서 HTTP라는 프로토콜만 사용한다면 TCP또는 UDP모두 사용이 가능하다는 것이다.
☑️ Benefits
- 데이터의 흐름이 한 눈에 보임
- 문제 해결이 쉬움: 어떤 단계에 문제가 있는지 알 수 있음. 툭정 단계까지 통신 이상이 없으면 그 아래 단계는 문제가 없는 것임.
- 여러 회사 장비를 써도 통신이 층별로 표준화되어 있으니 호환 가능
7️⃣ Application Layer
HTTP, HTTPS, FTP, DNS
사용자에게 네트워크 애플리케이션 제공
end user layer
user interface, database for a user/softwareto access network
- 요청을 GET으로 보낼지, POST로 보낼지 이런 데이터들도 넣고 싶어(7계층 응용계층)
6️⃣ Presentation Layer
JPEG, MPEG, ASCII, AVI
데이터를 통신 가능한 형식으로 변환
translating data between the application and transport layers
Data format
file encoding
- 중간에 누가 가로챈다면? (5/6계층 세션 계층, 표현 계층)
5️⃣ Session Layer(Message)
SSL, TLS
connection between application
- establish, maintain, terminate connection between application on different device
unit: message
connect two hosts
logical connection for data transmission
create TCP/IP
- Synchronize
- 이전까지의 통신은 서로 완벽히 논리적으로 공통으로 처리되었다
- 오류 복구에 사용
- 대화 기능
- 데이터 전송 과정
4️⃣ Transport Layer(Segment, Port)
TCP, UDP
- filter, manage traffic based on source and destination IP address, port numbers
- concerned with port numbers
- connection-oriented communication
unit: segment
데이터를 분할하여 전송, 수신할 때 다시 합치기
end to end connections
플로 컨트롤과 에러 복구 기능
에러 복구를 위해 패킷을 재전송하거나, 플로 조절하여 데이터 정상적으로 전송
- TCP: reliable, connection-oriented
UDP: faster, not guaranteed, conectionless
- 요청의 사이즈가 크면? 잘라서 보낸다. (4계층 전송계층)
- 잘라서 보낸다면, 다시 합치는 방법은? (4계층 전송계층)
3️⃣ Network Layer(Packet, IP)
핑, 라우터, Layer3 스위치, IP
다른! 네트워트에 존재하는 호소트와 통신
- routing data
unit: packets
라우팅:데이터를 목적지까지 가장 안전하고 빠르게!
(1)경로를 선택
하고, (2) 주소를 정하며
경로에 따라 패킷 전달
라우팅, 흐름제어, 오류 제어, 세그먼테이션 등 수행
- 근처에 해당 ip의 위치가 없다면? ROUTING 과정(3계층 네트워크 계층)
2️⃣ Data Link Layer(Frame, MAC)
스위치, 브리지
같은! 네트워크에 있는 컴퓨터 데이터 주고받기
unit: Frame 프레임: Data Link Layer에서 전송되는 단위
Mac Address(물리적 주소)를 가지고 통신
피지컬 데이터로 송, 수신된 정보의 오류와 흐름을 관리해 안전한 정보의 전달 수행
통신에서 오류도 찾아주고
재전송도 하는 기능
Framing: 스위치로 데이터가 들어오면 header
, trailer bit
을 추가해 데이터 간 구분 가능하게 작업
1️⃣ Physical Layer
repeater, cable, hubs
데이터 케이블, 허브, 리피터
컴퓨터0, 1
로 표현되는 데이터를아날로그 신호
로 바꿔물리적 매체(전선)
으로 보내기
unit: 0과 1
전기적, 기계적, 기능적인 특성을 이용해 통신 케이블로 데이터 전송
단지 데이터 전달할 뿐, 데이터가 무엇인지/어떤 에러가 있는지/보내는 방식 등에 관해서는 관여 ❌
- 이걸 네트워크 선 상에서 어떻게 보내야 하지? (1계층 물리 계층)
☑️ header
헤더에는 각 계층별로 관리하는 여러 가지 관리 사항들이 붙는다.
한 단계씩 내려갈 때마다 헤더가 추가된다.
그리고 한 단계씩 올라갈 때마다 헤더가 벗겨짐.
한 단계씩 내려갈 때마다 헤더가 점점 붙기 때문에 정보가 원래 데이터에 비해 커짐, 그래서 우리가 예상한 전송 속도가 나오지 않는 것이다.