kh교육

(2025070105) 복습 & network ip

boangod 2025. 7. 1. 22:42

단어를 문장으로 풀어쓸 수 있도록 외워, 못 외우면 공부 안 한 거야

복습

 

네트워크 엣지(Network Edge)

- 사용자가 직접적으로 사용하는 부분(클라이언트, 서버 등)

클라이언트 : 서비스를 요청

서버 : 서비스를 제공

대부분의 인터넷 통신은 1:1 방식입니다. (단톡 같은 경우에도 결국에는 1:1 통신 방식입니다.)

 

엔드 시스템(End system) or 종단 시스템

엔드 시스템이란 ip를 가지며 인터넷에 연결된 데이터를 주고받는 장치입니다.

Host = 엔드 시스템에서 ip주소를 가진 장비

 

 

P2P(Peer to Peer)

p2p는 상업모델로 적합하지 않습니다. 이유는

- 수익 모델이 부족합니다.

- 제어가 잘 안 됩니다.

 

네트워크 코어(Network Core)

얼마나 가용성 있게 패킷을 교환, 전송을 하는가가 가장 중요합니다.

    ⬇

교환방식

- 회선 교환방식 = 통신할 때 자신의 전용 예약된 자원이 있습니다. 그러므로 성능이 안정적입니다. 하지만 가격이 비싸고 통신을 안 하게 된다면 그 회선은 낭비가 되므로 비효율적입니다.

- 패킷 교환방식 = 전달. 전체 경로를 내비게이션처럼 미리 정하지 않고 다음 목적지로 갈 경로만 결정합니다.

통계적 다중화방식 - 우리가 보통 사용하고 있는 방식

    - 장치에 장비가 연결되어 있으면 그 장치를 통해서 외부로 연결을 해야 합니다. 우선순위에 규칙은 없고, 그래서 속도가 들쭉날쭉        합니다. 통제를 하지 않고, 통제를 하지 않는다는 것은 그 장치의 가격이 낮다는 걸 뜻 합니다. 그러므로 누구나 만들기가 쉽습니          다.

 

이더넷

이더넷 = 버스형 토폴로지 기반으로 설계된 유선 LAN 통신 규격.

 

매인 기능 - CSMA/CD 방식

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)

두 글자씩 잘라서 설명하겠습니다.

CS( Carrier Sense )

- 네트워크상에 패킷이 있는지 먼저 확인하는 작업

케리어는 네트워크상에 패킷이 있으면 이용을 할 수 없습니다. TDM처럼(패킷 망의 특징) 한순간에 한 개의 데이터밖에 흐르지 못하기 때문입니다.

MA(Multiple Access)

- 패킷을 통제하지 않기 때문에 모든 스테이션에 동시에 전송을 하는 것.

동시에 전달하기 때문에 브로드캐스트랑 헷갈릴 수 있지만, 유니캐스트 방식으로 패킷을 보내고 데이터를 전송하는 방법은 멀티캐스트 방식입니다. 다른 노드들은 받은 정보에서 자신의 MAC주소를 확인하고 맞으면 가지고 아니면 버리게 됩니다.

CD(Collision Detection)

- 두 노드가 동시에 패킷을 보내게 되면 패킷이 충돌을 함(Collision), 그렇게 되면 콜리젼이 모든 컴퓨터에게 전달이 되고, 잠깐 대기를 하고 다시 전송을 하게 됩니다.

하지만 콜리젼이 발생하지 않도록 노력은 하지 않습니다. 피하지 않고 생기면 대처하는 구조입니다.

 

일정 수준 이상의 컴퓨터가 늘어나게 된다면(노드의 수가 증가하면) 콜리젼이 갑자기 발생을 할 수 있습니다. 그걸 방지하려면 네트워크를 나누어야 합니다. 여러 가지 방법이 있지만 이번에 배운 부분은 브릿지로 나누는 방법입니다.

 

브릿지 (= 스위칭 허브)

- 브릿지로 네트워크를 나누게 된다면 좀 빨라지는 효과가 있습니다. 그래서 네트워크의 기본장비로 사용합니다.

MAC주소 기반으로 통신을 합니다.

 

 

 

주요 동작 방식

 

Learning : 패킷을 수신하면 출발지 MAC주소와 수신받은 포트를 테이블에 저장합니다.

 

Flooding : A →B로 패킷을 보내고 싶은데 처음에는 B의 주소를 모르기 때문에(목적지 MAC주소를 모르기 때문) 모든 포트로 전송을 하는 것입니다.

 

Forwarding : 필터링이랑 거의 같이 작동합니다. 목적지 MAC주소가 같은 포트에 있으면 해당 포트로만 전송하는 것입니다.

 

Filtering : 통신을 계속하다 보면 테이블에 브릿지에 전체 MAC주소가 올라올 것입니다. 만약 A →C로 패킷을 전송할 때 다른 포트에 있는 DEF에 전송을 할 필요가 없기 때문에 그걸 막는 것이 필터링입니다.

 

만약 콜리젼이 브릿지에서 발생하면 목적지 주소를 파악해야 하는데 하지 못합니다. 그렇게 되면 보낼 방법이 없어지니까 그냥 보내지 않습니다. 그래서 콜리젼이 발생하면 다른 네트워크로 이동하지 못합니다. 

 

프레임을 보내려면 상대방의 MAC주소를 알아야 합니다. 이더넷은 Frame으로 통신을 합니다. 

arp frame이 있는데 목적지 주소를 그냥 ff-ff-ff-ff-ff-ff로 하고 주소는 그냥 상대방 주소로 설정을 합니다. 그 정보가 브릿지로 도달하면 전파가 되는 방식입니다.

arp 요청 패킷은 주로 브로드캐스트 패킷으로 날아가는 것이 일반적입니다. 하지만 arp응답은 유니캐스트밖에 없습니다.

arp는 보안 기능이 없습니다.


IP

ip = 주민등록번호

mac = 지문

 

IP = host를 구분하는 고유 주소(유일해야 함)

사람들이 읽기 힘들기 때문에 8비트씩 끊어서 구분함. (예 : 192.168.34.121)

IP는 단독으로 설정을 하지 못하고 netmask, gateway와 함께 구성됩니다.

 

netmask = 어디까지가 network주소인지, host주소인지 알 수 있는 용도. (24비트까지 network주소, 8비트 host주소)

ip주소에서 어디까지 네트워크주소인지 알 수 있는 지시정보

 

gateway : 나하고 네트워크주소가 다른 애들한테 통신하려고 할 때 사용, 여려 개 설정 가능.(없다고 봐도 댐) 기본 개이트웨이는 반드시 하나만 설정 가능

 

예시

1.1.1.3/255.255.255.0

00000001 00000001 00000001 00000011

11111111     11111111 11111111   00000000

 

네트워크 주소를 알아내려면 &연산하면 된다. - &연산의 1은 항등원이야.

서브넷마스크를 ip주소랑 &연산하면 네트워크 주소가 된다.

 

1.1.1.0~1.1.1.255

첫 번째 주소 = 1.1.1.0(network 주소)

마지막 주소 = 1.1.1.255(브로드캐스트 주소, 1.1.1.로 시작하는 불특정 다수)

첫 번째 주소와 마지막 주소는 사용 불가

실제 사용할 수 있는 주소= 1.1.1.1 ~ 1.1.1.254

 

ip는 돈을 받고 임대하지 못합니다. ip는 인류의 공동자산!

네트워크 아이디에 통신을 하면 반응을 안 합니다.

 

class

- ip를 어떻게 할당해서 나눠주려고 하는 규격 (클래스는 기술스펙이 아니다.)

class기반으로 ip를 할당하는 관리체계는 ip낭비로 인하여 실패했습니다.

Class 범위 #of network #of host Ex
A 0~127 128 256^3 110.0.0.0~110.255.255.255
B 128~191 64*256 256^2 180.10.0.0~180.10.255.255
C 192.223 32*256^2 256 203.12.34.0~203.12.34.255
D 224~239  

 

 

사용하면 안 되는 ip

Zero add 0.0.0.0~0.255.255.255 특수 목적으로 예약됨.
0.0.0.0 : any(인터넷 전체)
Network add
Direct broadcast add
네트워크 첫번째 IP
네트워크 마지막 IP
 
Local broadcast add 255.255.255.255 인터넷 전체의 broadcast add
255.255.255.255 : host
Multicast add D class Multicast를 위해 할당
Loopback add 127.0.0.0 ~ 127.255.255.255 자기 자신을 의미하는 IP
Zero configuration 169.254.0.0 ~ 169.254.255.255 DHCP나 RARP 서버가 없는 P2P또는 Wireless환경에서 자동 설정되는 IP
사설 A : 10.0.0.0 ~ 10.255.255.255
B : 172.16.0.0 ~ 172.31.255.255
C : 192.168.0.0 ~ 192.168.255.255
사설 IP

 

 

연습 문제

A : 1.1.1.1
B : 1.1.1.2
C : 1.1.2.1
D : 1.1.2.2
E : 1.3.1.1

255.255.255.0으로 나누었을때
network 범위 : 1.1.1.0 ~ 1.1.1.255 , 1.1.2.0 ~ 1.1.2.255 , 1.3.1.0 ~ 1.3.1.255
네트워크 id : 1.1.1.0 , 1.1.2.0 , 1.3.1.0
통신이 가능한 장비
┖ 1.1.1.1, 1.1.1.2  |  1.1.2.1, 1.1.2.2  |  1.3.1.1

255.255.0.0으로 나누었을때
network 범위 : 1.1.0.0 ~ 1.1.255.255
네트워크 id : 1.1.0.0 , 1.3.0.0
통신이 가능한 장비
┖ 1.1.1.1, 1.1.1.2, 1.1.2.1, 1.1.2.2  |  1.3.1.1

255.0.0.0으로 나누었을때
network 범위 : 1.0.0.0 ~ 1.255.255.255
네트워크 id : 1.0.0.0
통신이 가능한 장비
┖ 1.1.1.1, 1.1.1.2, 1.1.2.1, 1.1.2.2,1.3.1.1

① IP : 210.113.29.45 netmask : 255.255.255.0
┖네트워크 범위 : 210.113.29.0 ~ 210.113.29.255
② IP : 29.1.210.35 netmask : 255.255.0.0
┖네트워크 범위 : 29.1.0.0 ~ 29.1.255.255
③ IP : 2.113.1.1 netmask : 255.0.0.0
┖네트워크 범위 : 2.0.0.0 ~ 2.255.255.255
④ IP : 10.35.3.9 netmask : 255.255.0.0
┖네트워크 범위 : 10.35.0.0 ~ 10.35.255.255
⑤ IP : 110.194.129.199 netmask : 255.255.0.0
┖네트워크 범위 : 110.194.0.0 ~ 110.194.255.255
⑥ IP : 9.213.229.204 netmask : 255.255.255.0
┖네트워크 범위 : 9.213.229.0 ~ 9.213.229.255
⑦ IP : 8.1.2.4 netmask : 255.0.0.0
┖네트워크 범위 : 8.0.0.0 ~ 8.255.255.255
⑧ IP : 190.13.48.245 netmask : 255.255.255.0
┖네트워크 범위 : 190.13.48.0 ~ 190.13.48.255

리눅스 명령어 공부

입력 장치=입력 파일 = 키보드

리눅스는 모두 파일로 본다.

 

리다이렉트

> : 표준 출력 지시자

┖ # command > 파일 : 명령 결과를 파일로 저장(기존에 파일이 있으면 원래 있던 내용을 지워버리고 새로 운 명령결과를 저장함)

>> :추가 표준 출력 지시자

┖ # command >> 파일 : 명령 결과를 파일로 추가

< : 표준 입력 지시자

┖ # command < 파일 : 파일의 내용을 명령의 입력 값으로 사용

 

예시

[root@Linux159 /]# ls > ls.txt
[root@Linux159 /]# ls
al   boot  etc   lib    ls.txt  mnt  proc  run   srv  tmp  var
bin  dev   home  lib64  media   opt  root  sbin  sys  usr
[root@Linux159 /]# cat ls.txt
al
bin
boot
dev
etc
home
lib
lib64
ls.txt
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

 

cat

- 입출력파일을 지정하는 명령어

기본 입력 파일 : 키보드 기본 출력 파일 : CRT 입력 파일의 경우 < 기호 생략 가능

>> : 출력파일이 존재하는 경우 내용추가

   #   cat < a.txt > b.txt

   #   cat < /dev/null > a.txt

   #   cat > b.txt ^c, ^d   

        ┖ ^c는 입력을 하다가 앤 터키를 누르지 않은 줄은 저장하지 않고 앤 터키를 누른 줄만 저장을 합니다.(작업이 완료된 줄만 저                 장.)

        ┖ ^d는 입력을 하다가 앤터키를 누르지 않은 줄도 저장합니다.(작업이 완료되지 않아도 저장.)

   #   cat <<EOF >./abc.txt

   > 내용 입력

   > EOF

EOF = end of file

내용 입력창에 내용을 입력하고 마지막 EOF를 입력하면 입력 내용이 abc.txt에 저장이 됩니다.

 

상대 경로로 표현하기

 /etc/ssh/sshd_config 여기 있는 파일을 보려고 합니다.

  1. 위치 /                                            : cat etc/ssh/ssh_config
  2. 위치 /etc/rc.d                                : cat../ssh/sshd_config
  3. 위치 /etc/ssh/ssh_config.d/          : cat../sshd_config

상대경로로 표현하면 위에 처럼 나타내면 됩니다.

echo 

- 환경변수나 입력 내용을 출력

환경변수는 매우 매우 여러 번 많이 사용할 때 사용합니다.

$ = 변수 연산자.

export = 환경변수 지정, 수정할 때 사용합니다.

‘ ’ = 탈출 문자 = 이스케이프 코드, 문자로 인식

(예시)

 

 

 

env

- 모든 환경변수 출력