y39scode
로그인
y39scode
로그인
OSI 7 Layer
Y39
·
2023년 3월 5일
팔로우
0
CS
internet
우아한테크
유튜브 후기
0
toBeProgrammer
목록 보기
21/88
0. OSI 7 Layer
Physical Layer
Data-Link Layer
Network Layer
Transport Layer
Session Layer
Presentation Layer
Application Layer
1. Physical Layer
두 대의 컴퓨터의 통신
0과 1만 주고 받을 수 있으면 된다.
전선으로 0과 1로 주고 받으면 된다고 생각하지만...
실제로는 잘 작동하지 않았음
전선에 따라 모든 전자기파를 통과시키지 못함 -> 일부만 도착
데이터(encoder) -> 아날로그화 -> 데이터(decoder)
물리적으로 연결(전선)된 두 컴퓨터가 0과 1을 주고 받을 수 있게해주는 모듈
PHY 칩(하드웨어적으로 작동하고 있음)
2. Data-Link Layer
여러대의 컴퓨터 통신에 대하여
물리 레이어는 한계가 생김(모든 컴퓨터끼리 전선 연결은 불가능)
그래서 컴퓨터끼리 연결을 돕는 허브(더미 허브)를 설치
하지만 전선이 하나면 연결된 모든 컴퓨터가 통신을 받게된다.
그래서 허브를 똑똑하게 만들어 데이터를 원하는 사람에게 가도록 만듬 => 스위치
다른 스위치와 통신할 수는 없나? -> 라우터
라우터와 라우터를 끊임 없이 연결한 것이 인터넷
계층적으로 연결된 통신
Data-Link Layer
긴 데이터를 보낼 때는 끊어서 보내야한다.
잘못 끊으면 메시지가 달라짐
그래서 데이터의 앞뒤에 특정한 비트열을 붙임
같은 네트워크(같은 스위치) 데이터를 주고 받기 위해서 필요한 모듈
Lan 카드(하드웨어적으로 구현)
3. Network Layer
더 많은 컴퓨터들 사이의 통신
데이터를 원하는 곳으로 보내기 위해 -> 데이터 앞에 주소를 붙임
데이터 전송은 IP 주소를 알아야 가능
IP 주소는 DNS를 통해 알아낼 수 있음
(주소+data) => 패킷
전송
패킷을 자신이 속한 라우터에게 보냄
라우터a는 IP주소를 확인하고 연결된 컴퓨터에 해당하는지 확인
라우터a는 자신의 상위 라우터b에게 전송
라우터b는 IP주소를 갖고 있는 라우터f에게 전송
network Layer의 일
routing: 수많은 네트워크 속에서 IP주소를 찾음
forwarding: 자신의 다음 라우터에게 데이터를 보냄
운영체제에 포함되어있는 기능
4. Transport Layer
3layer을 통해 전세계의 컴퓨터가 연결
컴퓨터 내에서는 여러 프로그램들이 실행 중
여러 프로그램 중에 어떤 데이터를 줘야할지 어떻게 알까?
포트 번호를 통해서
프로세스는 서로 겹치지 않게 각자의 포트가 있음
포트번호에 알맞는 프로세스에 데이터를 전달
도착지 컴퓨터의 최종 종착지 프로세스에 전달
운영체제의 커널에 소프트웨어로 구현
OSI 모델 vs TCP/IP 모델
현대의 인터넷은 OSI 모델이 아니라 TCP/IP 모델
TCP/IP 모델 또한 네트워크 시스템 모델
TCP/IP가 OSI를 재치고 네트워크 시장을 점유함
업데이트가 되고 TCP/IP 모델은 OSI모델과 매우 유사해짐
[업데이트 전]
[업데이트 후]
5. Application Layer
TCP/IP 소켓 프로그래밍 (네트워크 프로그래밍)
운영체제 Transport layer에서 제공하는 API를 활용
통신 가능한 프로그램을 만드는 것
누구나 자신만의 Application Layer 프로토콜을 만들 수 있음
대표 인코딩-디코딩: HTTP
HTTP
header, body, request, response, status code...
Y39
System.out.print("Bold")
팔로우
이전 포스트
TCP/UDP
다음 포스트
정적 웹과 동적 웹
0개의 댓글
댓글 작성