레이어링
레이어링은 사람들이 업무 분담하는 것을 보고 생각해 낸 것! 왜냐하면 분할을 하면 생산성이 높아지기 때문입니다.
예를 들어 자동차 조립을 할 때 자동차 문 하나로 이게 자동차가 될 거라는 생각은 할 수 없기 때문에 세부적인 것들을 하나하나씩 알게 되면 전체를 알 수 있습니다. 이것이 바로 레이어링입니다. 그러므로 레이어링은 복잡한 시스템에 사용하기 유용합니다.
그리고 서로 다른 레이어로 정보를 전송할 때 자신의 레이어에서 정보를 다음 레이어로 전송하면 그다음 일은 신경 쓰지 않습니다.
그러니까 상위 레이어가 하위 레이어의 동작구조를 몰라도 작동하는 구조입니다. 그래서 application개발이 활발하게 잘 된 것입니다. 이것이 투명성입니다.
TCP/IP 모델의 5 계층
application
- 크롬, 에지 같은 우리가 사용하는 프로그램들
통신 방법은 근본적으로 ( 클라 ←→ 서버 ) 이루어집니다.
transport
- tcp(예 : 집사)
데이터에 헤더 정보를 붙여서 세그먼트 형식으로 묶어서 아래 계층으로 보냅니다.
network
- ip = 집을 구별하는 역할 / 목적지를 정확하게 구별하는 역할입니다.
라우팅은 해당 포인트에서 다음 포인트까지만 정하는 것입니다. 가는 것은 network layer에서 하고 정보가 오면 tcp가 정렬, 정리합니다.
link
- 각 구간별 실제로 정보를 이송해 주는 역할입니다. 단위 네트워크 안에서만 움직이고, 각 네트워크마다 link layer에서 움직이는 게 다릅니다. 우리는 주로 이더넷을 사용합니다. 가성비가 가장 월등하게 좋기 때문입니다. ppp도 사용했지만 가성비가 많이 떨어지기 때문에 잘 사용하지 않습니다.
physical
- 케이블 규격, 잭이 있습니다.
Network 윗 layer=네트워크 엣지
Network 하위 layer = 네트워크 코어
밑에 그림은 데이터들이 움직이는 과정입니다.
접속을 할 때 ip, port번호를 사이트에 이미 줬습니다. 이 그림에서 chrome사용자는 HTTP로 메시지를 보내고 싶어 합니다. 그래서 메시지를 요청했고, 그러면 TCP가 목적지 포트 80, 출발 포트 8600을 가지고 메시지에 오버로드 합니다. 그걸 Segment로 감싸서 IP로 보냅니다. 그러면 IP에서 출발지 주소 1.1.1.5, 목적지 주소 1.1.1.6을 가지고 Segment에 오버로드해서 Datagram으로 감싸서 Ethernet으로 보냅니다. 그럼 Ethernet은 Datagram과 자신의 Mac 주소(출발지 주소)와, 상대방의 Mac주소(목적지)를 합쳐 Frame에 감싸 생성해서 보냅니다. 그러면 목적지의 Ethernet에서는 자신의 Mac주소가 맞는지 확인하고 주소를 확인 후 Datagram을 상위 계층(IP)으로 전달합니다. 그럼 IP에서 IP주소를 확인하고 본인의 주소가 맞는지 확인을 한 다음에 상위 계층(TCP)으로 전달을 합니다. 다음 TCP계층에서 포트 80으로 들어온 Segment를 해석하고 상위 APP에 전달을 합니다. 그럼 결과적으로 상대방이 보낸 Message를 80번 수신할 수 있습니다.
하지만 상대방 mac주소를 모른다. 여기서 이제 arp가 사용이 됩니다.
arp = 상대방 ip 주소로 상대방의 mac주소를 알아내는 것, 같은 네트워크 안에 있는 놈만 알 수 있다.
RARP 내 아이피로 내 mac주소 알아내기
인캡슐레이션은 상위 계층 -> 하위 계층
디캡슐레이션은 하위 계층 -> 상위 계층
OSI 7 Layer VS TCP/IP Layer
개념이 일치하지는 않지만 OSI Layer(1983년)가 TCP/IP Layer(1973년)보다 나중에 만들어졌습니다.
Physcial Layer
- cable이나 물리적인 형태
Data Link Layer
- 랜카드, 브리지, 스위치 등
Network Layer
- IP, router
Transport Layer
- TCP/UDP
Application
- socket, OS응용프로그램 등
네트워크 토폴리지
케이블의 물리적인 구성으로 이들을 구분할 수 없다!
버스 : 로컬 네트워크에서 사용, 우리 사람들이 사용하는 규격입니다. (이더넷)
- 패킷이 어디로 가려면 제어를 해야 하지만 제어하는 규정이 없습니다. 멀티플 액세스로 보냅니다.
스타 : 로컬 네트워크에서 사용 안 함, 가능한 경로가 하나밖에 없습니다.(atm네트워크(전화국)에서 사용)
링 : 로컬 네트워크에서 사용 안 함. 하지만 매우 안정적인 네트워크입니다. 주로 국방, 의료 쪽에서 사용합니다. 하지만 비용이 많이 나갑니다. 특징으로 한쪽이 만약 부서진 다고 하면 링구조만 만들어진다면 통신이 가능합니다.
패킷
- 데이터를 주고받을 때, 데이터를 주는 놈의 정보, 보내는 놈의 정보를 블록으로 붙인 것.
패킷의 종류
유니캐스트 : 받는 놈이 정확하게 정해져 있고, 보내는 놈이 정확하게 정해져 있는 것(1:1 통신)
브로드캐스트 : 목적지 주소가 정해져 있지 않으면 모든 장치에 데이터를 뿌림(내가 보낼 거니까 아무나 받아라(1:N통신))
- ip = xxx.xxx.xxx.255
- mac = ff-ff-ff-ff-ff-ff
멀티캐스트 : d class, 특정 그룹에 속한 장치에게만 데이터를 전송합니다.
이더넷
- 버스형에 가장 대표적인 형식 (csma/cd형식)
CSMA/CD 형식 (두 글자씩 풀어서 해석)
CS( Carrier Sense ) MA( Multiple Access )/ CD( Collision Detection )
Carrier Sense : 정보를 전송하기 위해네트워크에 패킷이 사용 중인지 아닌지 확인하는 것(누가 받는지는 상관 x)
Multiple Access : 두 컴퓨터가 정보를 모든 스테이션에 전송(패킷이 어떻게 흘러가는지는 통제를 하지 않고, 상관 x)
Collision Detection : 두 컴퓨터의 정보가 충돌하면 증폭의 충돌을 확인.
밑의 사진은 노드가 많아지면 네트워크의 성능변화를 나타내는 그래프인데 A는 노드 수가 적기 때문에 충돌수도 적고, 성능도 높습니다. A와 B사이에 이제 노드수가 증가함에 따라 전송 성공률이 떨어지며 Collision Detection 일어납니다. 그래서 B에서 노드가 일정 수준을 넘어갔기 때문에 네트워크의 가용성이 심각하게 저하된 것을 볼 수 있습니다. A와 B의 위치는 같지만 A와 B의 성능차이는 A가 더 쾌적하고 빠르게 전송이 가능하고 B는 전송이 느리고 성능이 저하하게 됩니다.
이더넷에서 장치를 볼 때 = node(mac주소를 가진 장치)
※ mac 6byte 앞에 3개 제조사번호 뒤에 3개 고유번호( 00-00-00-00-00-00 )
그래서 보통 노드 수를 16~32개 미만으로 유지를 하는 것이 좋습니다.
이더넷의 확장
• Repeater
- segment를 사용하고, 신호를 증폭시키기만 합니다. 역할이 따로 없습니다.
• Bridge(Switch), 스위칭허브 = 브릿지
MAC주소 기반으로 네트워크 패킷을 필터링합니다. 네트워크를 크게 확장 가능합니다.
- Learning : 처음 패킷이 들어올 때마다 소스를 보고 어디에 누가 있는지 알 수 있게 됩니다.
- Filtering : 패킷을 확인하고 목적지에 MAC주소가 같은 포트에 있다면 다른 포트로 나가지 않게 버려버립니다.
- Forwarding : 목적지에 MAC주소가 있는데 다른 포트에 있으면 그 포트로 나갈 수 있게 패킷을 뿌립니다.
- Flooding : 목적지 MAC주소가 어디로 갈지 모르면 모든 포트에 다 패킷을 뿌립니다.(브로드캐스팅 주소가 들어오면)
- Aging : 거의 사용하지 않는 MAC주소 정보를 지우는 것입니다.
• Router : 아직 안 했음!
※ 네트워크는 블라인드 통신입니다. 옆에 누가 있는지 모르고, 알필요도 없습니다. 오직 나에게 오는 패킷만 확인을 합니다.( a→ b )
리눅스 기초 명령어
디렉터리 종류
etc : 제어판(환경설정 파일, 거의 다 txt파일)
var : 환경설정 파일, 운영하면서 쌓이는 파일(로그 파일)
home : 사용자의 home 디렉터리
usr : 프로그램은 여기 밑에서 다운로드한다. (yum, rpm 등) 원래 리눅스 안에 있었던 프로그램처럼 다운로드됨.
bin: 일반 명령어 저장
sbin : 시스템 관리자 명령어 저장
dev : 디바이스 파일들이 모여있음
디렉터리 표현
/ : root디렉터리
./ : 현재 디렉터리
../ : 현재 디렉터리에서 상위 디렉터리
~/ : 각 사용자의 홈 디렉터리
확장자라는 개념이 없음, 대소문자 구분함
명령어
pwd : 현재 위치 나타냄.
cd : 디렉터리 이동할 때 사용 / 그냥 입력했을 때 home디렉터리로 감
rmdir : 지정 디렉터리 삭제 (비워져 있어야 삭제 가능)
clear : 화면 지우기
mkdir : 디렉터리 생성
┖ -p : 상위 디렉터리까지 생성
┖ --version : 버전 확인
ls : 디렉터리 목록 출력
┖ -a : 숨겨진 파일 목록까지 출력
┖ -ㅣ : 파일에 대한 정보를 자세히 출력
┖ -R : 하위 디렉터리의 내용까지 출력
┖ -h : 사람이 이해하기 쉽도록 파일의 크기를 출력
┖ -k : kb단위로 파일크기 출력
┖ -i : 파일의 inode번호를 같이 출력(고유번호)
cat : 특정 파일의 내용을 출력
┖ -n : 행 단위 번호
┖ -b : 공백 라인을 제외하고 행 단위 번호
예시
[root@Linux159 ~]# mkdir -p a/b/bb
[root@Linux159 ~]# ls
a anaconda-ks.cfg 공개 문서 비디오 서식
aa initial-setup-ks.cfg 다운로드 바탕화면 사진 음악
[root@Linux159 ~]# cd a
[root@Linux159 a]# ls
b
[root@Linux159 a]# cd b
[root@Linux159 b]# ls
bb
[root@Linux159 b]# cd bb/
[root@Linux159 bb]# ls
[root@Linux159 bb]# cd
[root@Linux159 ~]# ls
a anaconda-ks.cfg 공개 문서 비디오 서식
aa initial-setup-ks.cfg 다운로드 바탕화면 사진 음악
[root@Linux159 ~]# rmdir aa
[root@Linux159 ~]# ls
a 공개 바탕화면 서식
anaconda-ks.cfg 다운로드 비디오 음악
initial-setup-ks.cfg 문서 사진
[root@Linux159 ~]# cd ./aa
-bash: cd: ./aa: 그런 파일이나 디렉터리가 없습니다
'kh교육' 카테고리의 다른 글
(2025070206) 라우터 & 네트워크 분할, NAT (0) | 2025.07.02 |
---|---|
(2025070105) 복습 & network ip (1) | 2025.07.01 |
(2025062703) 네트워크와 인터넷 ,ip address 간단 설명,패킷 통신방법 & html (0) | 2025.06.27 |
(2025062602) 간단 cmd명령어, 리눅스 설치 & filezilla사용 & putty (0) | 2025.06.27 |
(2025062501) window 설정 & VMware 설정 (0) | 2025.06.27 |