일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AI
- 티스토리챌린지
- Classification
- PCA
- 해커톤
- LLM
- LG Aimers
- LG Aimers 4th
- 머신러닝
- OpenAI
- deep learning
- regression
- 딥러닝
- 오블완
- 지도학습
- 회귀
- Machine Learning
- supervised learning
- gpt
- GPT-4
- ChatGPT
- LG
- 분류
- Today
- Total
SYDev
[컴퓨터 네트워크] 2주차: OSI 7 Layer 본문
경희대학교 컴퓨터공학부 유인태 교수님의 컴퓨터 네트워크 수업을 기반으로 작성한 게시물입니다.
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가지 특성을 포함
- 전기적 특성: 전압 레벨이 변하게 되는 시점
- 기능적 특성: 케이블의 기능적 특성을 정의
- 절차적 특성: 데이터 전송의 절차를 규정
- 물리적 특성: 표준 케이블 간의 물리적 연결을 정의
- 데이터를 전송할 수 있는 형태로 변환
- 물리 계층에서 데이터에 대한 오류(송신 or 수신)가 나더라도 복구하지 않음
- 광케이블과 구리선(UTP 케이블), 무선 연결이 주로 사용됨
UTP(Unshielded Twisted Pair) 케이블
- straight-through cable: switch/hub에 사용자 장치나 라우팅 장치 연결
- cross-over cable: 동일한 장치(switch to switch, pc to pc 등) 연결
- Hub, Repeater, 랜카드(Network Interface Card)는 1계층에 속하는 하드웨어 장비 -> 랜카드 자체는 물리 계층인 1계층에서 작동하지만, 동시에 랜카드 드라이버를 통해 2계층인 데이터링크 계층에서도 동작한다. ->> 랜카드는 1계층과 2계층 모두에서 동작할 수 있다. (https://www.inflearn.com/questions/865579/%EB%9E%9C%EC%B9%B4%EB%93%9C%EA%B0%80-%EC%86%8C%EC%86%8D%EB%90%9C-%EA%B3%84%EC%B8%B5)
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
- Coaxial Cable: 동축케이블은 1개의 심선을 축으로 하여 동축 원통상에 외부도체(外部導體)를 곁들인 케이블 (https://ko.wikipedia.org/wiki/%EB%8F%99%EC%B6%95_%EC%BC%80%EC%9D%B4%EB%B8%94)
- 광 케이블 -> Single-Mode Fiber: 직진성이 강한 광신호(laser), Multimode Fiber(led) -> singlemode가 이론적으로는 더 장거리, 광대역
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에 기록
-> 사용자로부터 ICMP(ping) 명령을 받고, ARP request로 해당 IP주소를 가진 pc의 MAC 주소를 얻어오는 과정
-> 출발지는 192.168.0.1, destination은 192.168.0.3
-> pc7에서 ARP request를 받아, 목적지가 192.168.0.1인 ARP reply를 다시 전송
-> 모든 과정이 끝나고나서, 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에서는 이렇게 표현할 필요 없는데, 스위치나 라우터같은 통신 장치는 언제든 확장될 수 있기에 이렇게 표현
데이터링크 계층의 주요 기능
데이터링크 계층의 대표적인 장치는 스위치이며, 주요 기능은 다음과 같다.
- 프레이밍(Framing): 물리 계층에서 수신한 신호를 조합 -> 프레임 단위의 정해진 크기로 데이터를 만든다.
- 흐름 제어(Flow Control): 송수신 장치 간의 데이터 흐름을 제어한다.
- 오류 제어(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 주소를 기반으로 패킷을 전달하는 계층
- 라우터가 패킷을 수신 -> 어떤 경로로 패킷을 전송할지 라우팅 프로토콜에 의해서 결정
네트워크 계층의 주요 기능
- 패킷 전달: 종단간(end-to-end)의 패킷 전달 수행
- 라우팅: 라우팅 프로토콜을 기반으로 효율적인 경로를 선택하여 패킷 전달
- 주소 사용: 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계층: 소프트웨어적 오류 검사
전송 계층의 주요 기능
- 흐름 제어: 송신 장치는 수신 장치에서 설정한 데이터 전송율에 따라 데이터 전송 -> 2계층: 물리적 속도(ex: 10mbps..), 4계층: 논리적 속도(서버가 바쁠 때 파일 업로드 속도를 조절)
- 혼잡 제어: 네트워크에 내에 대기하는 패킷 수를 줄여 혼잡을 미연에 방지 혹은 제어, 일반적으로 송신 장치의 데이터 전송을 억제하는 방법을 사용
- 오류 제어: 주고받는 데이터에 오류가 발생 -> 재전송 메커니즘으로 오류 해결 -> 통신에서 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://aws-hyoh.tistory.com/70
https://netdream.tistory.com/16
'3학년 1학기 전공 > 컴퓨터 네트워크' 카테고리의 다른 글
[컴퓨터 네트워크] 5주차: 라우팅 개념과 정적 라우팅 구성 (1) | 2024.04.09 |
---|---|
[컴퓨터 네트워크] 4주차: IP 주소 체계, IP 주소와 서브넷팅, DHCP, SLAAC (0) | 2024.04.07 |
[컴퓨터 네트워크] 3주차: TCP/IP (0) | 2024.04.01 |
[Getting Started with Cisco Packet Tracer] Module 2 (0) | 2024.03.11 |
[Getting Started with Cisco Packet Tracer] Module 1 (3) | 2024.03.05 |