728x90
0. OSI(Open System Interconnection) 7 Layer란
- 국제 표준화 기구 ISO(International Standardization Organization)에서 발표한 Standard Communication Model
- Communication System 구성 시 호환성을 갖게 하고 각각의 Module들을 재사용 하기 위해 Network Protocol 통신 구조를 7개의 Layer로 분리하여 각 Layer간 상호 작동하는 방식을 정해 놓은 것
- 이를 통해 서로 다른 System끼리 통신할 수 있는 Standard를 제공
- 각 Layer는 자신의 특정한 역할을 수행하고, 자신의 하위 혹은 상위 Layer와 통신
- 각 Layer 별로 다수의 Protocol이 존재하며 하위 Layer로 갈 수록 Data의 크기는 커진다
- 각 Layer를 지날 때 마다 해당 Layer의 기능과 관련된 제어 정보가 포함된 Header가 붙음
- 이 Header는 송신 측에서는 Layer를 지날 때 마다 추가되고, 수신 측에서는 Layer를 지날 때 마다 제거됨
- Data Encapsulation : 계층 간 데이터 송신 시 각 계층에 맞는 헤더를 붙여 하위로 내려주는 과정
- Data Decapsulation : 반대로 데이터 수신 시 헤더들을 하나씩 버리고 순수 데이터만 상위 데이터로 올리는 과정
1. OSI 7 Layer 상세 내용
1. Physical Layer : Bit Stream의 물리적 전달을 담당하는 Layer
- 전기적, 기계적 특성을 통해 Data 송/수신
- 논리 신호를 전기 신호로 변환하여 통신 Cable이나 Hub 등으로 Data Bits를 전송하는 Layer
- 상위 계층에서 전달된 Data를 0, 1의 전기 신호(Bits)로 변환하여 송/수신
- 통신 Frequency, Cable 및 신호의 규격 등 통신의 물리적인 규칙을 다루는 Layer
- Data를 송/수신만 할 뿐, 그 Data의 내용이나 Error 여부에 대해선 신경쓰지 않는다
- 모든 Layer들이 이런 식으로 자신의 역할에만 집중
- 통신 Cable, 다수의 Computer를 연결하여 하나의 Network로 전송하는 Hub 등이 해당
2. Data Link Layer : Physical Layer를 통해 송/수신되는 Data의 흐름 관리 및 Error 탐지/수정
- Network Layer에 Data 전달 및 Network Layer에서 받은 Packet을 Frame으로 변환하여 Physical Layer로 전달
- 반대 방향의 전달도 가능
- 동일한 Network에 있는 두 장치 간의 Data 전송을 용이하게 함
- Frame에 물리적 주소인 MAC(Media Access Control) Address을 부여하고, 이를 통해 통신을 진행
- 2개의 LAN을 연결하는 Bridge, MAC Address를 기반으로 Data를 전송하는 Switch, Ethernet 등이 해당
3. Network Layer : Network를 논리적으로 구분하고 Routing에 대한 규칙을 정하는 Layer
- 서로 다른 Network에 있는 두 장치 간의 Data 전송을 용이하게 함
- 통신하는 두 장치가 같은 Network에 있는 경우에는 Network Layer가 필요하지 않음
- Transport Layer의 Segment를 이를 송신하는 장치에서 Packet으로 세분화하여 재조립
- Network를 통해 Data Packet을 전달하기 위해 Routing Protocol 으로 통신의 출발점과 목적지 간의 최적의 경로 탐색
- Router를 통해 경로(Route)를 선택하고 IP(Internet Protocol. 주소)를 정하고 그 경로에 따라 Packet을 전달
- 즉 Route를 선택 및 IP를 정하고 그 Route에 따라 Packet을 전달하는 것이 Network Layer의 주 역할
- Data를 전송할 주소 확인 후 Transport Layer로 전달
- Network Layer에 해당하는 장치는 LAN을 연결하는 Router가 있으며, Protocol은 IP가 있다
4. Transport Layer : Data전달의 유효성 및 효율성 제어
- 노드 간 데이터 통신을 위한 데이터 분할 / 재조립, 연결 / 흐름 제어 등의 역할
- 흐름 제어 : 송/수신 장치 간의 통신 속도가 다를 경우, 둘 간의 최적의 통신 속도를 결정
- Port를 열어 Application Program들이 전송을 할 수 있게 해줌
- Session Layer로부터 받은 Data를 Segment로 분할하고, 이를 재조립하여 Network Layer에 전달
- 하위 Layer에서 Data를 받으면 그 Data를 하나로 합쳐 Sesseion Layer에 전달
- 수신 기기의 Transport Layer는 수신한 Segment를 Session Layer가 사용할 수 있는 Data 형태로 재조립해야 함
- 두 Node 간의 신뢰성있는 Data 통신을 위한 Error / 흐름 / 혼잡 제어 등을 수행
- 신호를 분산하고 다시 합치는 과정을 통해 Error와 경로를 제어
- Port 번호, 전송 방식(TCP / UDP 결정) : TCP Header가 붙음
- Transport Layer에 해당하는 Protocol은 TCP, UDP가 있다
- TCP(Transmission Control Protocol) : Data 통신 시 확인 msg를 받은 후 전송
- Connection Oriented(연결 지향)으로, Packet들의 전송이 유효한지 확인 후 전송에 실패한 Packet들을 다시 전송
- UDP(User Datagram Protocol) : 확인 과정 없이 단방향으로 Data를 전송
5. Session Layer : 양 장치 간 통신의 통로 역할
- 두 장치 간 통신의 시작 및 종료를 담당하는 Layer
- 통신이 시작될 때 부터 종료될 때 까지의 시간을 'Session'이라 함
- 통신 중 연결이 끊어지지 않도록 유지하기 위해 TCP/IP Session 연결의 설정 및 해제, Session Message 전송 등 수행
- 또한 Data 전송을 지정한 Check Point마다 동기화하여 오류 발생시 효율적으로 Data를 재전송 할 수 있게 한다
- Ex) 1000KB의 Data 전송, 50KB마다 Check Point 설정
- 510KB 전송 중 Error가 발생하면 마지막 Check Point인 500KB 지점에서 통신 재개 가능
- Check Point가 없다면 Error 발생 시 Data 전송을 처음부터 다시 해야 함
- Session Layer에 해당하는 Protocol으로는 SSH, TLS 등이 있다
6. Presentation Layer : 데이터의 양식 일치를 위한 동작 관리
- 서로 다른 Format의 Data들을 해석하여 해당 Data를 Application Layer가 사용할 수 있게 준비하는 역할
- 통신하는 두 장치가 서로 다른 Data 양식을 사용할 경우, 이를 수신 장치의 Application Layer가 이해할 수 있게 수신 Data를 변환하는 역할을 담당
- Ex) 한국 사람과 외국 사람간 대화 시의 통역 역할
- 즉 전송하는 Data의 Format(표현방식)을 결정(Data 변환, 압축, 암호화 등)하고 수신하는 Data를 해석하는 Layer
- Application이 다루는 정보를 통신에 알맞는 형태로 만들거나
- 하위 Layer에서 온 Data를 사용자가 이해할 수 있는형태로 만듦
- Data의 효율과 보안을 위한 파일 Encoding, 압축, 암호화 및 전송을 위한 Format으로 변경하는 역할을 수행
- 파일의 확장자(mp4, txt, docx 등)가 이 Layer에 해당하는 Protocol
7. Application Layer : 데이터 생성, 처리 등의 최종 과정 관리
- 사용자와 직접 상호작용 하는 유일한 Layer로, 응용 Process와 직접 관계하여 일반적인 응용 Service를 수행
- Chrome이나 Email Client 같은 Application Software에서 사용자가 입력한 Data 요청을 받고 그 요청한 Data를 제공하는 Layer
- Application Software가 Application Layer에 해당하지는 않음
- Application Layer는 Application Software가 사용자가 요청한 Data를 제공하기 위한 Protocol과 Data를 처리하는 역할
- Application Layer에 해당하는 Protocol은 아래와 같다
- HTTP (Hyper Text Transfer Protocol) : HTML 문서 전송 Protocol
- FTP (File Transfer Protocol) : File 전송 Protocol
- SMTP (Simple Mail Transfer Protocol) : E-Mail 전송 Protocol
- POP3 (Post Office Protocol 3) : E-Mail 수신 Protocol
- 실제 Protocol들은 보통 위 7개의 계층을 다 사용하지는 않음
- 필요한 계층만 따로 사용하거나 몇개의 계층을 한 계층으로 만들어 사용
2. OSI Model 동작 예시
1) 송신 측
- 학생이 E-Mail Application을 통해 친구에게 보낼 Message 작성 후 '보내기' 클릭
- E-Mail Application(Application Software)이 해당 Data를 Application Layer로 전달
- Application Layer에서 SMTP Protocol 선택 후 해당 Data를 Presentation Layer로 전달
- Presentation Layer에서 해당 Data 압축 후 Session Layer에 전달
- Session Layer에서 통신 Session 시작 후 Transport Layer로 Data 전달
- Transport Layer에서 이 Data를 Segment로 나눔
- 이 Segment는 Network Layer에서 Packet으로 다시 한번 나뉨
- 이 Packet은 Data Link Layer에서 Frame으로 또 한번 나뉨
- Data Link Layer는 이 Frame을 Physical Layer로 전달
- Physical Layer에서 이 Frame을 0, 1의 Bit Stream로 변환한 후 통신 Cable 등의 Communication Media를 통해 교수의 컴퓨터에 전송
2) 수신 측
- 친구의 컴퓨터가 Communication Media를 통해 Bit Stream을 WiFi 등의 Communication Media를 통해 수신
- Physical Layer에서 이 Bit Stream을 Frame으로 재조립하여 Data Link Layer로 전달
- Data Link Layer에서 이 Frame을 Packet으로 재조립하여 Network Layer로 전달
- Network Layer에서 이 Packet으로 Segment를 만들어 Transport Layer로 전달
- Transport Layer에서 이 Segment를 조립하여 하나의 Data를 생성 후 Session Layer로 전달
- Session Layer에서 통신 Session 시작 후 이 Data를 Presentation Layer로 전달하고 통신 Session 종료
- Presentation Layer에서 압축 제거 후 원본 Data를 Application Layer로 전달
- Application Layer에서 사람이 읽을 수 있는 Data를 E-Mail Application(Application Software)에 제공
- 친구는 본인의 컴퓨터에서 E-Mail Application을 통해 학생의 Message를 읽을 수 있음
3. Summary
참고 자료 : https://lxxyeon.tistory.com/155
https://www.cloudflare.com/ko-kr/learning/ddos/glossary/open-systems-interconnection-model-osi/
https://shlee0882.tistory.com/110
https://huimang2.github.io/etc/iso-standard-7498
https://m.post.naver.com/viewer/postView.naver?volumeNo=26957131&memberNo=2521903
'Study_Communication' 카테고리의 다른 글
CAN 통신이란 (0) | 2024.08.19 |
---|---|
Windows에서 Putty, VNC 사용법 (2) | 2023.09.04 |