kh교육

(20250708010) VI 에디터 & udp, pt

boangod 2025. 7. 9. 00:23

일단 오늘 자리를 옮겼기 때문에 컴퓨터 기본 세팅부터 다시 시작했습니다.

 

vi 에디터

- 모든 유닉스시스템에 탑재되어 있습니다. 

- 터미널 화면에서 문서를 편집할 때 여러 줄을 편집할 수 있는 건 vi가 최초임.

터미널은 마우스로 복사하면 자동으로 복사됨.

리눅스형 터미널의 특징. → 마우스로 드래그해서 우클릭하면 바로 복사됨.

작업하는 중간에 다른 이름으로 바꾸는 일은 없다.

 

vi 실행

• vi 에디터는 반드시 파일명을 추가해서 실행합니다.

 

# vi 파일명

 

vi의 모드 Windows용 에디터와는 달리 에디팅 하는 모드와 이를 편집하는 모드가 다릅니다.

  • 명령 모드 : 입력이 외의 편집작업
  • 입력 모드 : 데이터 입력 및 수정 - i, a, o, (I, A)
  • 실행 모드 : 파일 저장, 종료 → : 입력, wq, q!

명령 모드에서 삽입 모드로 변경

i : 커서 위치부터 입력

• a : 커서 다음 칸에 입력

o : 커서 아래 새로운 라인을 삽입하고 입력

• I : 커서가 위치한 라인 맨 앞에 입력

• A : 커서가 위치한 라인 맨 뒤에 입력

 

명령 모드에서 실행 모드로 변경

• :

 

삽입, 실행 모드에서 명령모드로 변경

• [ESC]

 

이동

  • h, j, k, l (왼쪽, 아래, 위, 오른쪽)
  • gg, G (문서 맨 처음이나 아래로)
  • nG (n 라인으로 이동)
  • ^f, ^b, ^d, ^u (화면단위 이동)

^f → 밑으로(문서 만드는 방향)

^b → 위로(문서 만드는 반대방향)

 

삭제

- x (글자만 삭제)

- dd (라인만 삭제)

- dw (단어삭제)

- D (커서뒷부분에 있는 라인 삭제)

 

검색

/문자열

n :검색상태에서 순방향으로 재 검색, /와 동일,

N : 역뱡향(위로)으로 검색

 

치환

:%s/원단어/바꿀단어/[옵션]

    - 라인에 맨 앞에 단어만 치환한다.

    g : 전역 치환(전부 다 바꿔), i : 대소문자 모두 치환, c : 치환여부 확인

ㄴ 당분간은 사용하지 않기

 

환경 설정

:set [환경변수] [값]

환경변수

    nu (라인번호 표시) - 많이 사용.(라인번호 지우려면 nonu)

    sm (반대 괄호 표시)

 

:wq (저장 후 종료 )

:q! (저장하지 않고 종료, 취소한 다음에 종료 )

:w [파일명] (저장 또는 지정한 파일명으로 내용저장) → 익숙하지 않으면 사용을 하지 맙시다.

 

 

빨간색으로 나타낸 명령어는 주로 사용하는 명령어입니다. 다른 것들은 쓰다 보면서 익혀집니다.

 

 


udp

UDP는 왜 데이타그램(datagram)이라 부르는가?

- IP 계층과 유사하게 자기는 아무것도 안 하기 때문.

 

두 개의 UDP segment들이 출발지 IP나 port번호가 둘 다 다르거나 둘 중 하나가 다르더라도

동일한 목적지 IP와 port번호를 갖는다면 동일한 socket을통해 process에 전달됩니다.

 

웹서비스는 거의다 tcp

소캣은 포트번호로 구별하는데 포트번호가 같으면 어떻게 구별하나?

tcp는 소캣을 만들 때 나랑 통신하는 상대방의 ip, port, 자신의 ip, port가 합쳐서 생성됨.

tcp는 서비스를 할때 소캣이 클라이언트마다 하나씩 생긴다.

tcp는 안에있는 프로세스를 구별할 필요가 없다. 그냥 소캣만 구별하면 된다.

 

 

멀티스레드방식  : 하나의 프로세스가 많은양의 소캣을 열어서 관리하는 것

- 웹서버 쪽에서 많이 사용하고, 많은 수의 클라이언트에 서비스하는 것이 가능합니다.

 

 

 

 

 

 

 

 

 

 

udp = connectionless(커넥션이 없음.)

  • UDP sender와 receiver간에 handshaking 하지 않는다.
  • 각 UDP segment들은 서로 독립 적으로 전달됩니다.

커넥션 : 데이터 통신하기 전에 하는 사전작업.

- 패킷보내도 될까요? 네. 네 이제 보내겠습니다.

 

udp는 간단합니다. 그리고 Transport layer에서 최소한의 기능으로 동작하고, mulx/demulx 기능만 제공합니다.

best effort” (보장하지 않는다.)

• 데이터 손실가능

• 전송순서가 바뀔 가능성

 

UDP를 이용하는 이유(단점이자 장점.)

•  연결설정이 없습니다.(데이터를 보내기 전에 예비동작이 없음.) → 빠르고 단순

   예비동작 없이 전송함으로 설정에 따른 어떠한 지연도 없습니다.

   (DNS)

 연결상태가 없다.(tcp는 통신하기전에 메모리를 확보해야 함, udp는 그런 거 없음.) → 리소스 적게 소모

   연결상태 유지를 위한 변수가 없음으로 TCP보다 많은 app를 수용할 수 있습니다.

 header가 작다.(기능이 없으니까, 헤더가 작다 = 장점이자 단점.빠르다.) → 속도 빠름

    8 byte (TCP : 20 byte)

 혼잡제어하지 않는다.(길을 어떻게 만들지, 어떤애들이 먼저 갈지, 뭐가 먼저 갈지. 보내는 놈이 이걸 정한다. 그냥 일정하게 패킷을 보냄. 스스로를 희생해서 네트워크를 원활하게 돌아가게 하는 것. 혼잡제어는 tcp만 한다.)

네트워크의 혼잡도를 고려하지 않음으 로 app가 요구하는 전송을 전송량을 제한 없이 전송합니다. (SNMP)

TCP는 네트워크 혼잡을 고려하여 자신을 희생, UDP는 무조건 전송

 

 

네트워크가 혼잡하던 안하던 데이터를 보내야 하니까 udp를 사용하는 프로그램도 있습니다.

 

데이터를 1,2,3,4, 보낼것입니다. 그래서 데이터를 받았는데 3번 빼고 왔다고 한다면 원래 안되지만 그래도 되는 애들이 있는데 그런 애들이 바로 멀티미디어 데이터(영상)들이 이런다. 그래서 통상 udp를 사용한다.

 

 

 

UDP checksum

목적은 전송된 segment에 “errors”를 검출한다.입니다.

 

송신자 (Sender)

Segment의 content는 순서에 따라 16bit integers로 간주한다

모든 16bit(word)의 합을 가지고 1 의 보수를 수행한다. (이때 오버플로우는 버린다.)

결과는 UDP segment checksum field에 삽입한다.

overflow bit를 wraparound로 이 용 하는 경우도 있음

 

수신자 (Receiver)

Segment를 수신후 checksum을 을 포함한 모든 16bit word를 더합니다.

그 결과가 모두 1(즉, 1111 1111 1111 1111) 이면 → 에러 없고, 하나라도 0이 있으면 오류가 있다고 합니다.

 

계산 방법

EOM TAE JUN

 

(추가하기)

 


 

PT

 

라우터의 시리얼 포트 사용할 거 시계 달린 선으로 연결하기

 

스위치포트는 기본적으로 활성화 되어있음

라우터 포트는 죽어있음. 항상 no shut 해서 살려야 합니다.

 

switch

  • segment 연결 장치인 Bridge가 확장된 장비이다.

Switch 설정

• STP : Spanning Tree Protocol

• VLAN

 

Swhitch# show [옵션]

ip interface brief : 인터페이스별 설정 정보

interface [if명] : 인터페이스의 통계 정보

spanning-tree : STP 관련 정보

cdp neighbor : 주변 장비 확인

cdp neighbor detail : 인접 장비 정보 확인

running-config : 설정 정보 확인

 

administratively down - noshut 해야지만 켜짐.

 

버스형 토폴리지에서 패킷이 한번 날아가면 없어지는 이유 네트워크 끝에는 터미네이터 때문에

이더넷은 버스형 토폴로지

 

 

STP(Spanning Tree Protocol)

백업라인을 연결하는 용도

 

 

 

BID(Bridge ID) - 모든 스위치의 id가 다르다.

• 스위치 식별 정보

  • Switch ID가 아니라 BID다. • 8byte(64bit)로 구성된다.
  • Bridge Priority(2byte) + Mac Address(6byte)
  • Bridge Priority default : 32768 (0~65535)
  • 필요하다면 수정 가능하다.
  • 4096의 배수로 설정 가능 • 작을수록 우선순위가 높다.

BPDU(Bridge Protocol Data Unit)

• 각 스위치가 부팅 후 2초마다 BID 등의 정보를 교환한다.

• Path cost, BID등의 정보를 포함한다.

• 스위치에 문제가 발생하거나 회선에 문제가 발생 시에 10개 이상의 BPDU에 에러가 발생하면 새로운 경로를 설정한다.

 

Path cost - 미리 적용된 값.

• 데이터 전송비용

• 1000 Mbps를 링크 대역폭으로 나눈 값 : IEEE 802.1D

  • Fast ethernet(100M bps) : 1000/100=10
  • Giga ethernet : 1000/1000=1
  • • 빠를수록 적은 값을 가진다.
  • • 다양한 대역폭으로 인해 복잡한 값의 path cost가 계산됨으로 이를 단순화함