Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

SYDev

[컴퓨터 네트워크] 2주차: OSI 7 Layer 본문

3학년 1학기 전공/컴퓨터 네트워크

[컴퓨터 네트워크] 2주차: OSI 7 Layer

시데브 2024. 3. 13. 11:40
경희대학교 컴퓨터공학부 유인태 교수님의 컴퓨터 네트워크 수업을 기반으로 작성한 게시물입니다.

OSI 7 Layer(Open Systems Interconnection)

  • 컴퓨터 네트워크 or 네트워크 프로토콜을 설계하기 위한 지침
  • 개방형 시스템에서 통신을 하기 위해 7개의 계층 제안 
  • 각 계층별로 고유한 기능을 가지는 모듈로 설계됨(modular engineering), 이를 기반으로 데이터 통신이 이루어짐
  • 표준화 모델 사용으로 인한 이기종 장치의 데이터 통신이 가능하게 됨 -> 네트워크 장비 제작 회사가 지침대로 장비를 만들면, 다른 회사라고 해도 상호 호환성이 보장
  • 현재 우리가 사용하는 인터넷은 TCP/IP를 기반 -> TCP/IP가 OSI 7계층에 기반을 둔다. 
Packet Switching 방식 -> 데이터를 Packet이라는 작은 단위로 나누어, 다중 노드로 구성된 네트워크를 통해 전송하는 개념 
- 각 패킷은 전송 당시 가장 효율적인 경로를 설정하여 최종 목적지까지 이동 -> 패킷을 수신한 중간 노드가 패킷의 최종 목적지(수신지)를 확인하고, 목적지까지의 가장 최적의 경로를 따라 패킷을 이동시키는 '라우팅'을 해줘야 한다. -> 여기서 라우팅을 수행해주는 중간 노드가 '라우터'
- 데이터를 송신하는 호스트에서는 해당 네트워크가 사용하는 프로토콜을 기반으로 데이터를 작은 단위로 분할하고, 분할된 데이터들 각각의 앞에 패킷 번호, 송신지 및 수신지 정보 등 다양한 정보를 담은 패킷 헤더를 붙여 최종적으로 '패킷'이라는 형태로 변환하여 데이터를 전송
TCP/IP: 패킷 통신 규약 중 하나, TCP 프로토콜과 IP 프로토콜을 아울러 지칭하는 용어
- TCP(Transmission Control Protocol): 신뢰성 있고 무결성을 보장하는 연결을 통해 데이터를 안전하게 전달해주는 전송 프로토콜
IP(Internet Protocol): 패킷들을 가장 효율적인 방법으로 최종 목적지로 전송하기 위해 필요한 프로토콜
- TCP/IP가 제시하는대로 데이터를 패킷으로 캡슐화


https://velog.io/@haero_kim/%EB%AC%BC-%ED%9D%90%EB%A5%B4%EB%93%AF-%EC%9D%BD%EC%96%B4%EB%B3%B4%EB%8A%94-TCPIP

 

 

-> Please Do Not Touch Steve's Pet Alligator

 

1계층: 물리 계층(Physical Layer)

  • Physical Layer: 사용자 데이터를 물리 매체 상에서 통신이 가능하도록, 신호를 변환해주는 역할
  • 신호 전송을 위해서 4가지 특성을 포함
  1. 전기적 특성: 전압 레벨이 변하게 되는 시점
  2. 기능적 특성: 케이블의 기능적 특성을 정의
  3. 절차적 특성: 데이터 전송의 절차를 규정
  4. 물리적 특성: 표준 케이블 간의 물리적 연결을 정의
  • 데이터를 전송할 수 있는 형태로 변환
  • 물리 계층에서 데이터에 대한 오류(송신 or 수신)가 나더라도 복구하지 않음
  • 광케이블구리선(UTP 케이블), 무선 연결이 주로 사용됨

UTP(Unshielded Twisted Pair) 케이블

  • straight-through cable: switch/hub사용자 장치나 라우팅 장치 연결
  • cross-over cable: 동일한 장치(switch to switch, pc to pc 등) 연결

 

Repeater: 긴 케이블일수록 신호가 약해지기 때문에, 신호를 멀리 보내기 위한 증폭장치. 지금은 다른 네트워크 장비에 기본적으로 기능이 탑재되어 사용 X

Hub: 리피터 역할을 하며, 기존 리피터와 다르게 여러 장비를 연결할 수 있다.

https://heisyoung.tistory.com/52

Network Interface Card: 컴퓨터가 만든 디지털 데이터를 전기 신호나 전파같은 물리적 신호로 변환하여 네트워크로 보내거나, 네트워크로부터 받은 물리적 신호를 디지털 데이터로 변환하는 기능 -> 랜카드는 서로 다른 형태의 데이터를 전송하는 컴퓨터와 네트워크 간에 상호작용이 가능하도록 하는 네트워크 인터페이스

https://better-together.tistory.com/101
  • Auto-MDIX(Automatic Medium Dependent Interface Crossover): 송/수신을 협상 -> cross-over, straight-through cable 구분 없이 장치를 연결해도 ㄱㅊ
- 다이렉트 케이블과 크로스 케이블을 자동으로 판단하는 기능이다.
- 일반적으로 MDI와 MDI-X를 연결할 때는 다이렉트 케이블을 사용하고, MDI 끼리나 MDI-X끼리 서로 연결할 때는 크로스 케이블을 사용한다.컴퓨터나 라우터의 인터페이스를 MDI라고 한다.스위치나 허브의 인터페이스는 MDI-X라고 한다.
- 최근에는 케이블 배선 실수로 인한 통신 문제를 해결하기 위해 MDI와 MDI-X 차이를 자동으로 판단하여 연결 신호를 전환한는 기능을 가진 스위치나 허브를 많이 사용한다.위의 장비를 사용한다면 케이블 차이를 고려하지 않아도 된다.

https://velog.io/@doforme/%EB%AC%BC%EB%A6%AC%EA%B3%84%EC%B8%B5

 

케이블 종류

  • UTP, STP(Unshielded Twisted-Pair, Shielded Twisted-Pair) -> 내부 선이 pair?: 두 신호 평균내서 노이즈 제거, 꼬아놓은 이유?: 두 가닥의 선이 외부로부터 받는 영향을 평균적으로 받기 위해

  • RJ-45 Connector: 꼬여있는 구리 pair cable 전용 커넥터 -> 8개의 구리선을 연결할 수 있게 8개의 핀으로 구성

-> Tx(Transmit): 송신 신호선이 나가는 포트

-> Rx(Receive): 수신 신호가 들어오는 포트

-> 하지만 PC to PC일 때는 이와 상관없이 송수신이 이뤄질 수 있음 -> 이를 cros해놓은 cable이 cross-over cable

 

 

Topology

  • Topology: 컴퓨터 네트워크의 요소들(링크, 노드 등)을 물리적으로 연결해 놓은 것, 또는 그 연결 방식

 

2계층: 데이터링크 계층(Datalink Layer)

CSMA/CD

  • CSMA/CD(Carrier Sense Multiple Access / Collision Detection): 충돌을 방지하면서 다중 접속하도록 하는 방식
  • 이더넷에서 주로 쓰이던 방식 -> 2대 이상의 컴퓨터가 동시에 데이터 통신 송신을 시도할 경우 충돌이 발생 -> 충돌이 일어날 경우 일정 시간 후에 재시도. 
  • 오늘날 쓰이지 않는다, 왜? -> 랜 환경에서는 충돌이 발생 X -> 스위치는 한 포트에서 들어온 신호가 어디로 갈지 딱딱 정하기 때문에 충돌할 일이 없다.
  • 랜카드에는 모두 탑재된 기능 -> HUB를 사용하여 장치를 연결할 때 사용하는 방식

 

https://m.blog.naver.com/mailkkw1/222113214067

 

데이터링크 계층(Datalink Layer)

  • 서로 다른 주변 네트워크 장치들이 데이터를 주고 받을 수 있도록 한다.
  • 3계층과 연결되어 필요에 따라 데이터를 3계층으로 전달한다.
  • 데이터링크 계층에서 전송되는 데이터프레임(Frame)이라 한다. 
  • 데이터링크 계층에서 프레임 전달은 MAC 주소를 기반으로 한다.
MAC(Media Access Control) Address
- 매체에 접속하여 정보를 전달하는 주소, 유일무이
- 2계층에서 통신을 위해 네트워크 인터페이스에 할당된 고유 식별자
- 48비트의 16진수 12자리로 표현됨
- 네트워크 카드나 장비를 생산할 때, 하드웨어적으로 정해져 나오는 주소 -> BIA(Burned-In Address)라고도 부름 -> 구워져서 나온다. ROM(Read Only Memory)에 저장!
-> physical, MAC, BI, Hardware Address 모두 같은 말 <-> software, Port 주소

https://chaelin1211.github.io/study/2021/05/29/mac-address.html

-> MAC address를 S/W로 변경 가능하다는 것은 mask를 쓰는 것과 같음.

-> Personal Computer가 가지는 고유 번호를 그대로 통신에 사용하기는 위험이 따름 -> 따라서 가명을 사용하는 느낌?

 

  • 4계층 -> port address
  • 3계층 -> IP address
  • 2계층 -> MAC address

 

PDU(protocol data unit)

  • 1계층에서는 010101의 bit 데이터 형태로 고정된 크기의 데이터 유닛 형태 X
  • 2계층 -> frame
  • 3계층 -> packet
  • 4계층 -> segment
  • 5, 6, 7계층에서는 아직 조각나지 않은 사용자 데이터 원본이기에 따로 부르는 명칭은 없음 

-> 고정된 크기의 데이터 유닛 형태가 아니고, 형식도 다 다르다. 따라서 PDU X

 

MAC-Table이 완성되는 과정

-> A에서 스위치로 frame을 전송, 목적지는 B

-> frame을 전송받은 switch는 A의 위치 기록, 그러나 목적지인 B가 어느 경로에 존재하는지 모름

-> frame을 복사해서 3번 포트를 제외한 나머지 모든 경로로 전송, 목적지에 도달하지 못한 정보는 소멸 

-> 이를 flooding이라 부름

-> 만약 스위치에 B의 위치가 이미 기록돼있다면, 바로 B로 전송 

-> 이를 unicasting이라 함

 

ICMP(Internet Control Message Protocol) echo request: pc1에서 ping 192.168.0.2(IP 주소) 명령어를 입력 

-> ARP(Address Resolution Protocol): IP주소를 MAC 주소와 매칭시키기 위한 프로토콜

-> LAN(Local Area Network)에서 단말과 단말 간 통신을 하기 위해서는 IP주소를 MAC Address로 매칭하여 목적지 IP의 단말이 소유한 MAC 주소를 제대로 찾아가야 한다.

-> IP 주소와 MAC 주소를 일대일 대응하여 테이블로 정리 -> ARP Table

 

 

-> pc0의 prompt에서 ping 192.168.0.2(ICMP message) 명령어 입력, pc0에서 ARP request(서로의 IP는 알고있지만 MAC 주소를 모르는 상황에 IP주소를 통해 MAC 주소를 얻어오게 해주는 프로토콜)를 switch로 전송

-> pc1, pc2, pc3(192.168.0.2), pc4로 arp request 전송

-> arp request의 목표인 pc1이 이에 반응하여 arp response(pc1의 mac address)를 전송

-> pc0은 pc2가 보낸 arp response를 arp table에 기록

pc-0의 arp table

 

switch의 arp table

 

pc5에서 ip주소와 ping(ICMP message) 명령어로 pc7을 찾는 과정

-> 사용자로부터 ICMP(ping) 명령을 받고, ARP request로 해당 IP주소를 가진 pc의 MAC 주소를 얻어오는 과정

첫 번째 ARP

-> 출발지는 192.168.0.1, destination은 192.168.0.3

 

-> pc7에서 ARP request를 받아, 목적지가 192.168.0.1인 ARP reply를 다시 전송

 

switch의 ARP table

-> 모든 과정이 끝나고나서, switch의 arp table에 pc5와 pc7의 port 위치 저장

 

ICMP message: 인터넷/통신 상에서 발생한 일반적인 상황 or 오류에 대한 보고
-> error message와 echo request/reply message 두 가지로 나뉜다.

ICMP TYPE 8 (ECHO REQUEST), 
ICMP TYPE 0 (ECHO REPLY) 같은 메시지에서는 특정 값이 주어짐

 

Modular Engineering

  • 네트워킹 장치는 modular engineering으로 설계됨
  • 이더넷 포트가 0/1 -> 이런식으로 표현되는 이유
  • 모듈/슬롯/포트로 표현
  • 0번 모듈에 1번 포트 -> 0/1
  • 사용자 장치인 personal computer에서는 이렇게 표현할 필요 없는데, 스위치나 라우터같은 통신 장치는 언제든 확장될 수  있기에 이렇게 표현

데이터링크 계층의 주요 기능

데이터링크 계층의 대표적인 장치는 스위치이며, 주요 기능은 다음과 같다.

  1. 프레이밍(Framing): 물리 계층에서 수신한 신호를 조합 -> 프레임 단위의 정해진 크기로 데이터를 만든다.
  2. 흐름 제어(Flow Control): 송수신 장치 간의 데이터 흐름을 제어한다.
  3. 오류 제어(Error Control): 프레임 전송 시 발생한 오류를 복원한다.(재전송)
3가지 프레임을 사용하여 데이터링크 계층의 전송 프로토콜을 작성 가능
1) 정보 프레임 (Information Frame: I frame)
- 상위 계층이 전송을 요구한 데이터를 수신 호스트에 전송하는 용도
순서 번호(Sequence Number: 정보 프레임의 고유 번호), 송수신 호스트 주소정보 등이 포함됨
-> 프레임 안에 sequence number 정보가 있긴 하나, 2계층에서는 해당 번호를 지정하는 작업은 X
2) 긍정 응답 프레임 (Positive Acknowledgement Frame: ACK frame)
- 전송 데이터가 올바르게 도착했음을 회신하는 용도
- 데이터를 수신한 호스트가 데이터를 송신한 호스트에게 전송
3) 부정 응답 프레임 (Negative Acknowledgement Frame: NAK frame)
- 전송 과정에서 프레임 변형 오류가 발생했음을 회신하는 용도
- 원래의 정보 프레임을 재전송하도록 요청
- 송신 호스트는 오류가 발생한 프레임을 동일한 순서 번호로 다시 전송

 

 

3계층: 네트워크 계층(Network Layer)

  • 네트워크 계층의 데이터 -> Packet, 대표적인 장치는 라우터
  • IP 주소를 기반으로 패킷을 전달하는 계층
  • 라우터가 패킷을 수신 -> 어떤 경로로 패킷을 전송할지 라우팅 프로토콜에 의해서 결정

 

네트워크 계층의 주요 기능

  1. 패킷 전달: 종단간(end-to-end)의 패킷 전달 수행
  2. 라우팅: 라우팅 프로토콜을 기반으로 효율적인 경로를 선택하여 패킷 전달
  3. 주소 사용IP 주소를 기반으로 패킷 전달

 

네트워크 계층에서 사용하는 프로토콜

  • IP(Internet Protocol): 주소(IP address)로 사용되며, v4와 v6가 있음
  • ARP(Address Resolution Protocol): IP 주소를 기반으로 MAC주소를 찾을 때 사용
  • RARP(Reverse ARP): MAC주소를 기반으로 IP주소를 찾을 때 사용

-> IP주소 = Network Part + Host Part

-> 목적지가 같은 네트워크에 있으면, 목적지의 MAC 주소를 Destination으로 설정

-> 목적지가 다른 네트워크에 있으면, 목적지의 MAC 주소를 일단 라우터의 주소로 설정

 

4계층: 전송 계층(Transport Layer)

  • 전송 계층의 데이터 -> segment
  • segment의 헤더는 port address를 포함 (소켓 주소는 IP주소와 포트 주소의 조합)
  • 종단간(end-to-end) 오류 없이 데이터를 전송할 수 있도록 오류 발생 여부 확인.

-> 2계층: 하드웨어적 오류 검사, 4계층: 소프트웨어적 오류 검사

 

전송 계층의 주요 기능

  1. 흐름 제어: 송신 장치는 수신 장치에서 설정한 데이터 전송율에 따라 데이터 전송 -> 2계층: 물리적 속도(ex: 10mbps..), 4계층: 논리적 속도(서버가 바쁠 때 파일 업로드 속도를 조절)
  2. 혼잡 제어: 네트워크에 내에 대기하는 패킷 수를 줄여 혼잡을 미연에 방지 혹은 제어, 일반적으로 송신 장치의 데이터 전송을 억제하는 방법을 사용
  3. 오류 제어: 주고받는 데이터에 오류가 발생 -> 재전송 메커니즘으로 오류 해결 -> 통신에서 repair보다는 change 방식이 더 효율적

 

5계층: 세션 계층(Session Layer)

  • 세션 계층의 데이터 -> Message
  • 세션 연결의 설정과 해제 -> 통신의 시작과 종료를 정의

 

6계층: 표현 계층(Presentation Layer)

  • 데이터를 어떻게 표현하는지를 정의하는 계층 -> 이 기종 시스템들은 각기 다른 데이터 표현 방식을 사용 -> 이를 하나의 통일된 구문 형식으로 변환시키는 기능 필요
  • 응용 계층에서 생성된 데이터 -> 컴퓨터에서 만들어진 데이터 -> 이 데이터를 다른 컴퓨터가 이해할 수 있는 형태로 변환
  • 암호화를 통해 데이터의 보안 향상 -> 데이터 통신에 있어서 비밀을 유지
  • 데이터 압축 기능 지원 -> 데이터의 효율적인 전달과 저장을 위해 사용

 

7계층: 응용 계층(Application Layer)

  • 응용 프로그램과 통신 프로그램 사이에서 이를 연결하는 역할을 한다.
  • Http 프로토콜은 웹 브라우저를 사용하여 인터넷을 통해 데이터를 송수신한다.
  • OSI 7 Layer의 최상위 계층이면서 사용자에게 가장 가까운 계층

대표적 응용 계층 프로토콜

  • FTP(File Transfer Protocol): 파일 전송 프로토콜
  • SMTP(Simple Maile Transfer Protocol): 메일 전송 프로토콜
  • SNMP(Simple Network Management Protocol): 네트워크 모니터링
  • Telnet: 원격 접속(평문 데이터 전송) -> 보안상 위험 
  • SSH(Secure Shell): 암호화 원격 접속
  • http(Hyper Text Transfer Protocol) / https(Hyper Text Transfer Protocol Secure)

 

OSI 7 Layer의 캡슐화

계층별 캡슐화

  • OSI 7 Layer는 각 계층별로 고유 기능과 역할을 가지고 있다. -> 어떻게 이러한 역할을 데이터에 기록할까?
  • 계층별로 헤더를 데이터 유닛의 맨 앞에 붙인다 -> 캡슐화(Encapsulation)
  • 데이터 유닛의 맨 앞에 있는 계층별 헤더를 제거 -> 역캡슐화(Decapsulation)

-> OSI 7 Layer를 기반으로 하는 통신캡슐화와 역캡슐화의 과정을 통해 상호 데이터를 주고 받는 방식으로 통신

 

  • 2계층의 frame에는 트레일러가 붙는데, 데이터 전송 과정에서 오류가 발생했는지 검출하기 위해 사용된다.

-> FCS(Frame Check Sequence): 프레임의 끝 부분에 수신측의 에러검출을 돕기 위해 삽입하는 필드(http://www.ktword.co.kr/test/view/view.php?no=873)

-> CRC(Cyclic Redundancy Checking; 순환중복검사) 에러검출 기법에 의해 생성된 비트 배열이 이에 포함됨(http://www.ktword.co.kr/test/view/view.php?m_temp1=603&id=744)

 

  • Payload: 전송되는 데이터를 의미한다.

-> 데이터를 전송할 때, 헤더와 메타 데이터, 에러 체크 비트 등과 같은 다양한 요소들을 함께 보내어 데이터 전송의 효율과 안정성을 높인다. -> 이때 보내고자 하는 데이터 자체를 의미하는 것이 Payload이다.

https://hanamon.kr/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-http-%ED%8E%98%EC%9D%B4%EB%A1%9C%EB%93%9C-payload%EB%9E%80/


참고자료

https://run-it.tistory.com/31

 

ICMP (Internet Control Message Protocol) 란 무엇인가 ?

선선한 바람이 불기 시작한 9월입니다. 환절기에 감기 조심하시구요~ 오늘의 주제인 ICMP에 대한 이야기를 시작해 보겠습니다. 1. ICMP란? ICMP[Internet Control Message Protocol] : 인터넷 제어 메시지 프로

run-it.tistory.com

https://aws-hyoh.tistory.com/70

 

ARP 쉽게 이해하기

주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트워크 주소는 이더넷 또는

aws-hyoh.tistory.com

https://netdream.tistory.com/16

 

network Layer(3계층)-ICMP/ARP

ICMP(Internet Control Message Protocol) ICMP: IP 상의 오류를 제어해주는 프로토콜이다. -ping: 네트워크 문제를 확인할 때 사용한다. 출발지에서 request를 보내면 반대 쪽에서 reply를 보내는 에코 형식의 프르

netdream.tistory.com

 

데이터 링크 계층

본 자료 정리는 '쉽게 배우는 데이터 통신과 컴퓨터 네트워크(개정판)' 원서에 출처합니다.Copyright © 한빛 아카데미.오류 제어, 흐름 제어의 원리와 동작 방식을 이해통신 프로토콜에서 윈도우의

velog.io

 

2계층 데이터 링크 계층

이번에는 OSI 7 Layer의 두 번째 계층인 데이터 링크 계층에 대해서 알아보도록 하겠습니다.이더넷(Ethernet)은 LAN에서 데이터 통신을 수행하기 위해 사용하는 규칙입니다.여러 대의 컴퓨터가 통신을

velog.io

 

[네트워크/HTTP] 페이로드(Payload)란? - 하나몬

페이로드(Payload)란 무엇일까? 페이로드(payload)는 전송되는 데이터를 의미한다. 데이터를 전송할 때, 헤더와 메타 데이터, 에러 체크 비트 등과 같은 다양한 요소들을 함께 보내어, 데이터 전송의

hanamon.kr