8월, 2019의 게시물 표시

[컴퓨터네트워크] 베이스밴드 & 브로드밴드

이미지
[컴퓨터네트워크] 베이스밴드 & 브로드밴드 LAN은 구성형태  따라 성형, 버스형, 트리형, 링형, 그물형, 혼합형 전송매체에 따라  Twisted Pair Cable, Coaxial Cable, Optional Fiber 전송방식에 따라 Baseband(디지털 -> 디지털), Broadband(디지털 -> 아날로그) 액세스 방법에 따라 CSMA/CD, CSMA/CA, Token Passing으로 분류할 수 있다. 여기서는 LAN의 전송방식인 Baseband와 Broadband에 대해 알아보려 합니다. Baseband(베이스밴드)방식 디지털 단말에서 생성된 송신자의 정보(데이터, 음성, 영상 등)는 전기적 신호 로 변환한 뒤 통신회선을 통해 전송된다. 수신측에서는 그 신호를 다시 원래의 정보로 변환하여 수신하게 된다. 이 때, 전압값이 여러 개이고 연속적으로 변하는 신호를 아날로그 신호 라 하고, 미리 정해진 유한개의 전압값만 가지는 신호를 디지털 신호 라고 한다. Baseband방식은 디지털 형태인 0과 1의 직류 신호를 변조없이 그대로 수신측에 전송하는 방식이다. 기저대역을 뜻하는 용어로 데이터 신호 그 자체를 의미하며, 전송매체에 채널을 하나만 형성한다. 장거리 전송에는 적합하지 않고, 근거리 통신등에 사용된다. Broadband(브로드밴드)방식 브로드밴드 방식은 디지털 정보(0과 1)를 아날로그 신호 로 변환하여 수신측에 전송한다 . 아날로그 통신망을 이용하여, 수신측에서는 아날로그 신호를 다시 디지털 정보로 바꾸어 수신하게 된다. 이 때, 사용하는 것이 바로 모뎀(Modem)의 디지털 변조 기능이다. 즉, 송신측에서는 직류 신호를 교류 신호로 변환하여 전송하면, 수신측에서는 교류 신호를 직류 신호로 변환하여 수신한다. 브로드밴드 방식은 단일 채널이 아닌 다수의 채널을 이용할 수 있으며, 전송 케이블로 동축케이블과 광섬유케이블을 이용한다. CS

[컴퓨터네트워크] IP 데이터그램이란?

이미지
[컴퓨터네트워크] IP 데이터그램이란? 데이터그램 : 인터넷을 통해 전달되는 정보의 기본 단위 IP는 각기 개별적으로 전송되는 데이터그램이라는 패킷 형태로 데이터를 전송한다. 데이터그램은 서로 다른 경로로 전달될 수 있으므로 순서대로 도착하지 않거나 중복되어 도착할 수 있다. IP는 경로를 기록하지 않고, 일단 목적지에 도착한 데이터그램을 재전송하는 기능도 제공하지 않는다. IP계층의 패킷을 의미함 망측에서는 IP가 데이터그램의 전송을 위하여 최대의 노력(Best Effort)을 하지만, 확실한 전송의 보장을 하지는 않음 구성요소 버전, 헤더길이, 서비스타입, 전체길이, 식별자, 플래그, 단편화옵셋, 수명, 프로토콜, 검사합, 송신자 IP주소, 수신자IP주소, 옵션 버전(Version) IP프로토콜의 버전을 의미 IPv4 = 0100, IPv6 =0110 버전에 따라 헤더 구성이 다르므로, 올바른 해석을 위해 IP버전 정보가 필요함 버전이 맞지 않는 경우에는 폐기함  헤더길이(Header Length) 4바이트 단위로 표현 서비스타입(Differentiated Services) QoS 제공을 위해 사용함 전체길이(Total Length) 헤더와 데이터 길이를 합한 길이 전체길이가 필요한 이유 : 실제 데이터와 패딩을 구분해야 함 식별자(Identification) 데이터그램이 단편화되어 전송된 후, 재조립할 때 이용됨 식별자 필드는 중복되지 않아야 함 = 유일해야 함 카운터를 이용해 데이터그램을 보낼때 마다 카운터 값을 1씩 증가 플래그(Flag) 데이터그램의 상태나 진위를 나타내기 위한 변수 D : Don not Fragment (D값이 1이면 단편화를 하지 않고, 0이면 단편화를 함) M : More Fragment (M값이 1이면 마지막 단편이 아님, 0이면 마지막 단편) 단편옵셋(Flagmentation Offset) 단편화 되기 전 데이터 시작점으로

[컴퓨터네트워크] OFDM이란?

이미지
[컴퓨터네트워크] OFDM이란? 시분할 + 주파수분할 LTE기술의 핵심 기술 중 하나 OFDM은 고속의 송신 신호를 다수의 직교(Orthogonal)하는 협대역 반송파로 자유화시키는 변조 방식을 말한다. OFDM(Orthogonal Frequency Division Multiplexing)의 줄임말로 직교성이라는 특징을 이용한 다중 전송 방식이다. 이는 3세대 통신 방식인 CDMA와 3.5세대의 UMTS에서의 single channel을 mulit channel로 확대한 버전으로 MC-CDMA와 함께 4세대 통신 방식으로 불리고 있다. OFDM의 기본원리 고속의 전송률을 갖는 데이터열 을 낮은 전송률을 갖는 많은 수의 데이터열로 나누고, 이들을 다수의 부반송파 를 사용하여 동시에 전송하는 것이다. 즉, OFDM은 데이터열을 여러 개의 부채널로 동시에 나란히 전송하는 다중 반송파 전송방식의 특별한 형태로 본다. 따라서 OFDM 기법은, 1개 채널의 고속의 원천 데이터열을 다중의 채널로 동시에 전송한다는 측면에서는 "다중화 기술"이며,  다중의 반송파에 분할하여 실어 전송한다는 측면에서는 일종의 "변조 기술"이다. 각 부반송파의 파형은 시간축상으로는 직교(Orthogonal)하나, 주파수 축상에서는 겹치게(Overlap)된다. 이것을 그림으로 나타내면 다음과 같다. 즉, 위의 그림을 부연설명 하자면 대역폭 B를 N개의 sub-channel로 나누어 각 채널마다 데이터들을 실은 후 모두 더하게 되면, 하나의 symbol 그래프가 나오게 되고 이를 전송하게 되는 것이다. 여기서 각 채널들을 모두 더하여도 수신단에서 각각을 분리해 낼 수 있는 이유는 이 채널들이 서로 orthogonal한 특성을 가지고 있기 때문이다 출처 https://blog.naver.com/kim15888/10135120923

[컴퓨터네트워크] 데이터 통신 다중화 기법(FDMA & TDMA & CDMA & GSM)

이미지
[컴퓨터네트워크] 데이터 통신 다중화 기법(FDMA & TDMA & CDMA & GSM) 1. 다중화 하나의 전송로에 여러 개의 데이터 신호를 중복시켜 하나의 고속신호를 만들어 전송하는 방식으로, 전송로의 이용 효율을 높이는데, 그 의미가 있다. 이 때 사용하는 장비를 다중화기(MUX, Multiplexer)라 하며, 다중화기를 사용하지 않으면 단말기 개수만큼 MODEM(변복조기)이 필요하므로 비용과 효율성 측면에서 불합리하다. 다중화 주파수 분할 다중화(FDMA, Frequency Division Multiplexing Access) 주파수 분할 다중 접속 FDMA는 무선 셀룰러 통신에 할당된 주파수 대역을 30개의 채널로 분할 한 것이며, 각 채널은 음성 대화나 디지털 데이터를 옮기는 서비스에 사용 될 수 있다. FDMA에서는 각 채널이 한번에 오직 단 한명의 사용자에게 할당될 수 있다. D-AMPS(Digital-Advanced Mobile Phone Service) 역시 FDMA를 사용하지만, 시분할 다중접속 기술을 가미함으로써 각 FDMA 채널당 3개의 채널을 가질 수 있어, 종전에 비해 채널당 3배 더 많은 통화량을 감당할 수 있게 되었다. 전송되어야 하는 신호들의 대역폭을 합한 것보다 링크의 대역폭이 클 때 적용할 수 있는 아날로그 기술로, 한 전송로의 대역폭을 여러 개의 작은 채널로 분할하여 여러 단말기가 동시에 이용하는 방식 예를 들어, 넓은 고속도로를 몇 개의 차선(채널)으로 나누는 것과 같이, 넓은 대역폭을 좁은 대역폭으로 나누어 사용하는 것으로 표현할 수 있다. 초기 다중화 기술 ex) TV, 라디오 등 FDM다중화 과정 각 송신측 장치들은 각기 유사한 주파수 영역의 신호를 만들어 낸다. 이 유사한 신호들은 다중화기 내부에서 제각기 다른 반송주파수로 변조된다. 그 결과 만들어진 신호들은 하나의 복잡신호로 합쳐져서 신호를 수용하기에 충분한 대역폭을

[컴퓨터네트워크] TCP & UDP 정리

이미지
[컴퓨터네트워크] TCP & UDP 정리 TCP 프로토콜(Transmission Control Protocol) 플래그 M 비트 : 끝이냐(0) 끝이 아니냐(1) OSI 계층모델의 관점에서 전송 계층(4계층)에 해당 양 종단 호스트 내 프로세스 상호 간의 신뢰적인 연결지향적 서비스를 제공 IP의 비신뢰적인 최선형 서비스에다가 신뢰적인 연결지향성 서비스를 제공하게 됨 신뢰적인 전송 을 보장함으로써, 어플리케이션 구현이 한층 쉬워지게 됨 1. 신뢰성 있음 (Reliable) 패킷 손실, 중복, 순서바뀜 등이 없도록 보장 TCP 하위계층인 IP 계층의 신뢰성 없는 서비스에 대해 다방면으로 신뢰성을 제공 2. 연결지향적 (Connection-oriented) 같은 전송계층의 UDP가 비연결성(connectionless)인 것과는 달리, TCP는 연결지향적임 이 경우, 느슨한 연결(Loosly Connected)을 갖으므로 강한 연결을 의미하는 가상회선이라는 표현보다는 오히려 연결지향적이라고 말함 연결 관리를 위한 연결설정 및 연결해제 필요  양단간 어플리케이션/프로세스는 TCP가 제공하는 연결성 회선을 통하여 서로 통신 UDP 프로토콜(User Datagram Protocol) 발신지 포트, 목적지 포트는 필수, 체크섬은 옵션 전송 계층의 통신 프로토콜의 하나(TCP에 대비됨) 신뢰성이 낮은 프로토콜 로써 완전성을 보증하지 않으나 단, 출발지 포트 번호 와 목적지 포트 번호 를 포함함 가상회선을 굳이 확립할 필요가 없고 유연하며 효율적 응용의 데이터 전송에 사용 1. 비연결성이고, 신뢰성이 없으며, 순서화되지 않은 Datagram 서비스 제공 메시지가 제대로 도착했는지 확인하지 않음 (확인응답 없음) 수신된 메시지의 순서를 맞추지 않음 (순서제어 없음) 흐름 제어를 위한 피드백을 제공하지 않음 (흐름제어 없음) 검사합을 제외한 특별한 오류 검출

[컴퓨터네트워크] 변조방식(ASK & FSK & PSK)

이미지
[컴퓨터네트워크] 변조방식(ASK & FSK & PSK) Digital - to - Analog Conversion 디지털 신호를 아날로그로 바꿔주는 것을 Modulator라고 한다. 변조기라도고 한다. 반대로 아날로그를 디지털로 바꾸는 것을 복조기. Demodulator라고 한다. 하지만 사실, 실제로는 이것을 별도로 만드는 것이 아니라 동시에 합쳐서 만든다. 그래서 앞에 Mo와 뒤의 Dem을 합쳐서 모뎀이라고 한다. 이 장치는 디지털을 아날로그로, 아날로그를 디지털로 바꿔주는 장치다. 전화 모뎀이 있고, 케이블 모뎀도 있다. 전화 모뎀은 이제는 거의 안 쓴다. 금융권이나 인터넷이 다운 됐을 때 백업을 위해 사용될 뿐이다. 이것을 왜 사용하게 됐는가? 역사적으로 보면 굉장히 오래 됐다. 인터넷이 많이 보급되지 않은 시절에는 컴퓨터를 사용하기 위해 제한이 굉장히 많았다. 통신 장치들이 서로 연결되어 있고, A라는 애하고 B라는 애가 서로 통신하기 위해서는 케이블을 실제로 설치해야 했다. 그런데 케이블을 묻는데 돈이 많이 든다. 땅을 판다는 것은 토목 공사비도 든다. 시내 같은 곳은 특히나 엄청나게 돈이 들어간다. 이것이 너무 많이 드니깐, 기존에 깔려 있던 전화기 선을 활용하자. 이런 아이디어가 나오게 되었다. 이 전화선을 활용해서 인터넷을 사용하기 위해서 전화 모뎀이 나타나게 됐다. 사람 목소리가 아니라, 디지털 신호가 들어오게 만드는 것이라서 전화 교환기에 있는 필터가 이를 잘못된 신호로 인식해서 잘라버리게 된다. 이 필터라는 것은 정상적인 사람 목소리가 아니면 짤라버리는 것이다. 그래서 전화로 피아노 소리 가장 높은 도를 올리면 주파수가 너무 높아서 전달이 안된다. 전화 교환기의 사람 목소리 필터 주파수에 맞게 끔 디지털 신호를 아날로그로 바꿔주기 위해 등장한 것이 전화 모뎀이다. 아날로그 신호는 3가지 성분으로 표시를 한다. Amplitude : 진폭 Frequency : 주파수 Phase : 위상

[컴퓨터네트워크] ARQ 종류 및 정리

[컴퓨터네트워크] ARQ(Automatic Repeat Request) 종류 및 정리 ARQ : Automatic Repeat Request의 약자로, 자동 반복 요청을 의미. 에러가 발생한 경우 재전송을 요구하는 방식  Go-back-N ARQ와 Selective Repeat ARQ는 모두 전송층(Transport Layer)의 프로토콜이며 이 두가지를 혼합 및 개선하여 만든 프로토콜이 TCP(Transmission Control Protocol)이다. 이 글에서 사용된 '프레임'이라는 용어는 전송층에서 쓰이는 '패킷'과 같은 개념이며 데이터링크층에서 사용되는 전송단위인 프레임과는 다르다. 무잡음 채널에서의 프로토콜 Simplest Stop-and-Wait 잡음이 있는 채널에서의 프로토콜 Stop-and-Wait ARQ (파이프 라인이 1개) Go-back-N ARQ (파이프 라인이 N개) Selective Repeat ARQ (파이프 라인이 N개) 용어 정리 파이프라인  ACK를 받기 전에 보낼 수 있는 프레임의 갯수 ACK   확인응답, 에러없이 프레임을 받은 경우 송신측에 보내는 신호 프레임의 종류  데이터 프레임, 제어프레임, ACK 프레임 redundent bit  프레임의 오류를 검출 또는 정정하기 위해 데이터 비트 외에 추가적으로 붙이는 bit NAK(Negative Acknowledge)  해당 프레임을 제대로 전송받지 못한 경우 송신측에 보내는 신호 Slicing Window  송신자와 수신자가 관심을 두고 있는 순서 번호의 영역을 정의하는 추상적인 개념. 송신자와 수신자는 가능한 순서 번호의 일부만을 사용해야 한다는 것이다. sliding window의 크기가 파이프라인의 크기이다. Stop-and-Wait ARQ 수신측으로부터 ACK을 받을 때까지 대기하다가 전송하는 방법 반이중 방식으로 다른 ARQ 방

[컴퓨터네트워크] 허브 & 증폭기 & 브리지 & 스위치 & 게이트웨이 & 공유기 & 라우터

이미지
[컴퓨터네트워크] 허브 & 증폭기 & 브리지 & 스위치 & 게이트웨이 & 공유기 & 라우터 허브 여러 대의 컴퓨터를 연결해 네트워크를 만들어주는 장비이다. 여러 개의 단말 장치가 하나의 근거리 통신망(LAN)에 접속할 수 있도록 지원하는 중계 장치 포트의 개수는 허브에 따라 다양하며, 1개의 포트에 한대의 장비가 할당이 된다. 허브는 단순히 분배 중계기에 불과하기 때문에, 연결되는 컴퓨터 수에 따라 데이터 전송 대역이 분리된다. ex) 원래 전송 대역이 10Mbps인 네트워크 라인에 허브를 물리고 여기에 5대의 컴퓨터를 연결했다면 각 컴퓨터의 대역폭은 2Mps가 된다. 대역폭 : 초당 전송될 수 있는 최대량 허브는 크게 멀티포트와 리피터(Repeater) 기능으로 많이 사용된다. 멀티포트의 의미는 공유기 포트가 모자라면 허브를 추가적으로 설치하는 것을 말한다. 리피터(Repeater)같은 경우에는 보통 UTP 케이블 등의 데이터 최대 전송거리가 100미터인데 이 거리를 넘어서게 되면 통신이 불가능해진다. 100미터가 넘는 거리를 연결하려면 두개의 UTP선 사이에 허브를 설치하고 리피터 기능을 사용해야 한다. 리피터의 의미는 데이터를 재 전송한다는 의미이다. 신호가 약해지거나 왜곡될 경우 원래의 신호로 재생하여 재송신하는 장비 허브는 IP를 할당하는 기능은 없고 단순히 포트를 늘려주는 기능! 증폭기(Repeater) 물리 계층(Physical Layer)에서 동작하는 전송 신호를 재생, 중개해주는 증폭장치이다. 장거리 전송을 위하여 전송 신호를 재생시키거나 출력 전압을 높여 주는 방법 등을 통해 증폭시켜 전달해 주는 중계 장비이다. 디지털 방식의 통신선로에서 전송신호를 재생시키거나 출력전압을 높여 전송하는 장치이다. 들어오는 패킷을 분석 -> 전송유무를 결정 브리지(Bridge) 데이터 링크(Data Link)

[컴퓨터 네트워크] OSI 7계층이란?

이미지
[컴퓨터 네트워크] OSI 7계층이란? OSI 7계층 OSI 7계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. OSI 7계층을 나눈 이유는? 계층을 나눈 이유는 통신이 일어나는 과정을 단계별로 파악 할 수 있기 때문이다. 흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있다. ex) PC방에서 오버워치를 하는데 연결이 끊겼다. 어디에 문제가 있는지 확인하기 위해서는 모든 PC가 문제가 있다면 라우터의 문제(3계층 네트워크 계층)이거나 광랜을 제공하는 회사의 회선 문제(1계층 물리 계층) 한 PC만 문제가 있고 오버워치 소프트웨어에 문제가 있다면(7계층 어플리케이션 계층) 오버워치 소프트웨어에 문제가 없고, 스위치에 문제가 있다면(2계층 데이터링크 계층) 있다고 판단해 다른 계층에 있는 장비나 소프트웨어를 건들이지 않는 것이다. OSI 7계층 단계 1계층 - 물리계층(Physical Layer) 케이블, 리피터, 허브를 통해 데이터를 전송한다. 이 계층에서는 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 테이블로 데이터를 전송하게 된다. 이 계층에서 사용되는 통신 단위는 비트이며 이것은 1과 0으로 나타내어지는, 즉 전기적으로 On, Off 상태라고 할 수 있다. 상위 계층으로부터 전달받은 데이터의 물리적인 링크를 설정하고 유지, 해제하는 기능으 담당한다. 이 계층에서는 단지 데이터를 전달만 할뿐 전송하려는(또는 받으려는)데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경을 쓰지 않는다 . 단지 데이터 전기적인 신호로 변환해서 주고받는 기능만 할 뿐이다. 이 계층에 속하는 대표적인 장비는 통신 케이블, 리피터, 허브 등이 있다. 2계층 - 데이터 링크계층(Data Link Layer)

[컴퓨터네트워크] ARP & RARP & ICMP & IGMP & RIP & OSPF 프로토콜

이미지
[컴퓨터네트워크] ARP & RARP & ICMP & IGMP & RIP & OSPF 프로토콜 ARP(Address Resolution Protocol) IP address를 이용해 mac address를 알아내는 프로토콜이다. 즉 IP주소만 알고 있을 때 그 IP에 해당하는 MAC주소를 결정하는 프로토콜 IP -> MAC 논리적 주소를 물리적 주소로 변환 ARP 요청은 해당 네트워크 상의 모든 호스트와 라우터에게 브로드캐스트된다. ARP 응답은 ARP 요청을 전송한 요청자에게 유니캐스트된다. 송신 호스트 MAC주소는 자신의 LAN 카드에 내장되어 있기에 값을 알 수 있지만 수신 호스트는 MAC주소를 모르기 때문에 수신 호스트는 ARP 기능을 통해 수신 호스트 MAC주소를 얻어야 한다. A host가 B host의 MAC주소를 얻으려면 ARP Request 라는 특수 패킷을 브로드캐스팅 or 플로딩을 해야 한다.B가 아닌 다른 호스트들은 모두 패킷을 받게 되는데 관계가 없기 때문에 패킷을 무시하고 B는 동일함을 인지하기 때문에 ARP reply 패킷을 사용하여 B host의 MAC주소를 A host에게 회신한다. 계속해서 ARP Request를 하게 되면 브로드캐스팅을 사용하게 된다. 브로드캐스팅을 지속적으로 하게 된다면 네트워크 트래픽이 증가해 CPU의 부담을 줄 수 있기에 최근에 얻은 IP주소와 MAC주소 mapping값을 보관하는 캐시 정보를 이용한다. 송신 호스트 ARP Request 패킷을 브로드 캐스팅하면서 패킷을 수신한 모든 호스트는 IP주소와 MAC 주소 mapping값을 자동으로 얻을 수 있다. 이러한 방식을 이용해 ARP 트래픽에 의 한 부담을 줄일 수 있다. RARP(Reverse Address Resolution Protocol) MAC address를 IP로 매핑 시키는 역할 MAC -> IP 특이한 경우에 사용한다,(일반적인 경우에

[컴퓨터네트워크] MAC주소 & 유니캐스트 & 브로드캐스트 & 멀티 캐스트 & 애니캐스트

이미지
[컴퓨터네트워크] MAC주소 & 유니캐스트 & 브로드캐스트 & 멀티 캐스트 & 애니캐스트 네트워크 상에서 서로를 구분하기 위하여 Device마다 할당된 물리적 주소를 말합니다. 인터넷이 가능한 장비(PC, 휴대폰 등)들이 가지고 있는 물리적인 주소라고 생각하면 어렵지 않습니다. MAC주소는 12자리 숫자로 구성되어 있으며 숫자중 앞의 6자리(24bit)는 벤더(제품제조사)에 할당되며 나머지 6자리(24bit)는 각 벤더에서 제품에 할당합니다. 컴퓨터에 장착되 랜(LAN)카드를 구별하기 위해 만들어진 식별 번호입니다.(소프트웨어 대신 하드웨어에 연결되어 있기 때문에 실제 주소라고도 합니다.) 통신을 위해서는 MAC주소를 알아야 합니다. IP주소로 MAC주소를 알기 위해서는 IP주소를 MAC으로 바꾸는 ARP(Address Resolution Protocol)과정이 필요합니다. 네트워크 통신 방식에 따른 구분으로 유니캐스트 / 브로드캐스트 / 멀티캐스트를 알아보자 유니캐스트 출발지와 목적지가 정확해야 하는 일대일 통신입니다. MAC <=> MAC 받는입장에서 자신의 MAC과 비교하여 동일하지 않으면 해당 통신을 받지 않기 때문에 CPU 성능을 저하시키지 않습니다. 자신과 비교하여 동일하면 CPU로 해당프레임을 올려서 통신할 수 있습니다. 송신 노드 하나가 수신노드 하나에 데이터를 전송하는 일대일 방식 브로드캐스트 같은 네트워크에 있는 모든 장비들에게 보내는 통신입니다. 아파트 관리사무소 방송 같은 것으로 이해하면 쉬운데 듣고 싶은 방송만 듣는게 아니듯이, 해당 네트워크에 있는 PC들이 신호를 받고 싶던 말던 무조건 받게 됩니다. (자신의 MAC과 비교해서 동일하지 않으면 통신하지 않는 유니캐스트와 차이) 이렇게 무조건 받다보니 나에게 필요한정보인지 확인하는 과정에서 CPU를 사용하게 됩니다. 때문에 과도한 브로드캐스트는 네트워크 및 PC 성능을 떨어뜨릴

[컴퓨터네트워크] BCD코드, EBCDIC코드, ASCll코드

이미지
[컴퓨터네트워크] BCD코드, EBCDIC코드,Excees-3 코드, ASCll코드 BCD 코드(Binary Coded Decimal) BCD코드란 2진수는 컴퓨터 같은 디지털 시스템에는 좋지만 그것을 사용하는 사용자(사람)에게는 매우 불편하기 때문에 2진수를 사람들이 편하게 사용할 수 있는 10진수의 형태로 창안한것이 바로 BCD코드 특징을 살펴보면 십진수의 각 자리수에 대응되는 4개의 비트를 사용하여 표현 각 4개의 비트의 범위는 0000 ~ 1001 1010 ~ 1111은 사용되지 않음 2진화 10진 코드라고 부릅니다. 말 그대로 10진수를 이진코드로 표기한 것입니다. 6비트로 한 문자를 표현합니다. 영문 소문자를 표현하지 못합니다. 맨 앞 1비트를 Parity Bit로 추가하여 7비트로 사용 Parity Bit(1) + Zone Bits(2) + Digit Bits(4)로 구성 Digit Bits는 각 비트가 8, 4, 2, 1의 값을 의미합니다. 8421 코드라고도 부릅니다. EBCDIC 코드(Extended BCD Interchange Code) BCD코드를 확장한 코드입니다. 확장 2진화 10진 코드라 부릅니다. 8비트로 256가지 문자를 표현할 수 있습니다. 맨 앞의 1비트를 Parity Bit로 추가하여 9비트로 사용 Parity Bit(1) + Zone Bits(4) + Digit Bits(4)로 구성 Excess-3 코드 BCD코드에 3을 더하는 코드입니다. 모든 비트가 동시에 0일 때가 없습니다. 6진수로 BCD 코드를 표현한 후에 3을 더한 것이 Excess-3코드입니다. 자기 보수 코드입니다. 자기 보수 코드 1->0, 0->1로 바꾸었을 때 10진수의 9의 보수를 얻을 수 있는 코드를 말합니다. 10진수에서 9의 보수는 자신과 더해서 9 혹은 99, 999, ... 가 나오는 수를 말합니다. 예) 10진

[컴퓨터네트워크] 패리티 비트(Parity Bit) & 해밍 코드(Hamming Code)

이미지
[컴퓨터네트워크] 패리티 비트 디지털세계에서 데이터를 전송하다보면 잡음이나 오류등에 의해서 데이터 손실이나 변경이 일어나게 됩니다. 이를 우리는 에러(Error)라고 부르죠. 그래서 사람들은 생각했습니다. 어떻게하면 에러가 발생했는지 알 수 있고 어디서 발생했는지 알 수 있을지에 대해서요. 이러한 오류 검사는 매우 중요한데 가장 대표적이면서 간단하게 사용할 수 있는것이 바로 패리티 비트입니다. 패리티 비트 패리티 비트라는 것을 사용하여 만드는 코드로서, 정보의 전달 과정에서 오류가 생겼는지를 검사하기 위해 추가된 비트이다. 전송하고자 하는 데이터의 각 문자에 1 비트를 더하여 전송하는 방법으로, 1개의 비트 오류만을 검출 할 수 있다 . 즉, 패리티 비트를 정하여 데이터를 보내면 받는 쪽에서는 수신된 데이터의 전체 비트를 계산하여 패리티 비트를 다시 계산함으로써 데이터 오류 발생 여부를 알 수 있습니다. 그러나 패리티 비트는 오류 발생 여부만 알 수 있지 오류를 수정할 수는 없다는 단점이 있습니다. 시리얼 통신을 하면서 데이터가 소실되어 패리티에 의한 데이터 손실이 발생함을 인지하였을 때에는 수신지에서 다시 데이터를 보내달라는 재송신 요청을 할 수 있도록 하는 보다 안정적인 통신을 위한 하나의 보호장치라고 할 수 있겠습니다. 한편 패리티 비트의 경우 시리얼 통신의 거리가 상당히 멀 경우에 주로 적용이 되며, 송수신 거리가 짧을 경우에는 보통의 경우 패리티 비트는 사용하지 않고, Checksum 데이터를 추가하는 방법으로 데이터의 오류 검출을 하니 참고하시기 바라겠습니다. 그러나 패리티 비트는 2개의 bit 오류가 발생했을 경우는 검출할 수 없다 각각의 패리티 코드 내의 1의 개수에 따라 홀수 패리티와 짝수로 나뉜다. 짝수 패리티(Even Parity) & 홀수 패리티(Odd Parity) 위의 그림을 보면 우선 실제 전송하고자 하는 8-Bit Data에 추가적으로 붙게 되는 패

[소프트웨어공학] 유지보수

[소프트웨어공학] 유지보수 유지보수(Maintenance) 개발된 소프트웨어 품질을 항상 최상의 상태로 유지하기 위함. 개발단계 중 가장 많은 돈, 노력이 투입됨. 수정 보수 (Corrective) 잠재적인 오류를 찾아 수성, 오류 수정 및 진단 하자 보수 적응 보수 (Adaptive) 환경의 변화를 기존 소프트웨어에 반영하기 위한 활동 환경 적응 다른 시스템 요소가 향상되거나 변경될 때 대처하기 위한 유지보수 활동 완전화 보수 (Perfective) 본래 기능에 새로운 기능을 추가하거나 성능을 개선 유지보수 활동 중 가장 큰 업무 및 비용을 차지 예방 보수 (Prevention) 예비 조치 장래의 유지보수성. 오류발생에 대비하여 미리 예방 수단 강구 예방 유지보수를 소프트웨어 재공학 이라고 함. 출처 https://m.blog.naver.com/PostView.nhn?blogId=agopwns&logNo=220998978484&proxyReferer=https%3A%2F%2Fwww.google.com%2F

[소프트웨어공학] FTP(Formal Technical Review)의 지침사항

[소프트웨어공학] FTP(Formal Technical Review)의 지침사항 정형 기술 검토의 지침사항은 아래와 같다. 제품의 검토에만 집중하라 의제를 제한하여 진행하라 논쟁과 반박을 제한하라 문제의 영역을 명확히 표현하라 해결책과 개선책에 대해 논하지 마라 참가자의 수를 제한하라 체크 리스트를 개발하라 자원과 시간 일정을 할당하라 의미있는 훈련을 행하라 검토자들의 메모를 공유하라 검토 과정과 결과를 재 검토하라 출처 https://raisonde.tistory.com/entry/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%EA%B3%B5%ED%95%99-FTRFormal-Technical-Review%EC%9D%98-%EC%A7%80%EC%B9%A8%EC%82%AC%ED%95%AD

[소프트웨어공학] CPM(Critical Path Method) 네트워크

이미지
[소프트웨어공학] CPM(Critical Path Method) 네트워크 CPM 네트워크는 노드와 간선으로 구성된 네트워크이다. CPM 네트워크는 여러 가지 변형이 있다. 노드에는 작업을 표시하고, 간선은 작업 사이의 선후 의존 관계를 나타낸다. 위의 CPM 네트워크를 분석하면 S - A - M1 - C - M4 - I - M6 - K - M8 -L - X 작업으로 이루어진 경로가 임계 경로(critical path)가 된다. 즉, 이 경로에 있는 어떤 작업이라도 늦어지면 전체 프로젝트가 지연된다. 관리자는 다른 작어봅다 이런 작업들을 보다 관심에 두고 점검해야 한다. 또한 각 작업이 최대한 빠르게 끝날 수 있는 시간과 최대로 늦추어 끝낼 수 있는 시간을 각가 계산하게 된다. CPM 네트워크의 장점 관리자의 일정 계획에 도움을 준다. 프로젝트의 작업 사이의 관계를 나타낸다. 특히 최장 경로를 파악할 수 있게 한다. 할 수 있는 한 병행 작업을 할 수 있게 계획하고, 이를 위하여 자원 할당을 할 수 있게 한다. 다른 일정 계획안을 시뮬레이션 할 수 있다 프로젝트 일정을 점검하고 관리할 수 있게 한다. 출처 https://m.blog.naver.com/PostView.nhn?blogId=k97b1114&logNo=140165850486&proxyReferer=https%3A%2F%2Fwww.google.com%2F

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

이미지
[소프트웨어공학] NS(Nassi-Schneiderman) 차트 NS(나씨 슈나이더만) 차트 모듈 명세서를 글로 쓸수도 있지만 N-S차트로 그림으로 그릴 수 있다. 플로우차트는 생각보다는 사용횟수가 많지 않다.  손으로 그리기가 까다롭기 때문이다. 이에 비해 NS차트는 더 쉽게 그릴 수 있어 생각을 더 쉽게 정리할 수 있다. 물론 NS차트만으로 모든것이 해결되는것은 아니다. 프로그램은 정해진 일을 정해진 방법으로 하도록 컴퓨터에 명령을 내리는 것이다. 컴퓨터는 정해진 일과 정해진 방법이 무엇인지 알수 없다. 왜냐하면 기계니까 따라서 우리는 두 가지 관점에서 프로그램을 만들어 갈 수 있다. 1. 무엇을 해야 하는지 생각해보기 컴퓨터에게 시킬일이 무엇이며 어떤 결과를 받아 보고 싶은지 정리 2. 어떻게 해야 하는지 생각해보기 사용자로부터 입력이 되는것과 입력없이 알 수 있는것들 가지고 어떤 처리를 어떤 순서로 진행해서 결과를 만들지 NS차트는 어떻게 원하는 결과를 얻을 수 있는지를 정리해 볼 수 있는 도구이다. NS차트 구성요소는 처리, 반복, 분기의 일반적인 프로그래밍 언어의 구성요소를 표현할 수 있다. 먼저 순차처리 네모 박스에 입력, 출력, 연산을 기록한다. 선택구조는 IF문이나 CASE문을 사용하여 처리 흐름을 기록한다. 반복구조는 While문이나 For문을 사용하여 조건에 따른 반복처리를 기술한다. 1에서 100까지 합을 구하는 ns차트 NS차트의 특징 논리의 기술에 중점을 둔 도형을 이용한 표현 방법이다. 그리기가 어렵다.(전문성이 있어야 잘 그린다) 순차, 선택, 반복으로 표현한다. 임의의 제어 이동이 어렵다. goto구조가 어렵다. 그래픽 설계 도구이다. 상자 도표라고도 한다 프로그램으로 구현이 쉽다. 조건이 복합되어 있는 곳의 처리를 명확히 식별하기에 적합하다. if문이 여러개일 때 가능 출

[소프트웨어공학] 통합설계(하향식 통합 검사, 상향식 통합 검사)

[소프트웨어공학] 하향식 통합 검사, 상향식 통합 검사 하향식 통합 검사(Top Down Integration Test) 상위 모듈에서 하위 모듈 방향으로 통합하며 검사 주요 제어 모듈 기준으로 아래로 통합하며 이동 우선 통합법, 깊이 우선 통합법, 넓이 우선 통합법 등이 있음 절차 주요 제어 모듈을 드라이버 (검사 자료 입출력 제어 프로그램)로 사용. 주요 제어 모듈의 종속 모듈들을 스터브(임시 제공되는 가짜 모듈)로 대체 ex) A와 B가 결합된 C모듈이 있을 때 하향식 검사는 A와 B에서 옳은 값이 들어온다는 가정 하에 C가 잘 작동 하는 것인지 보는 것이므로, A와 B로부터 와야 할 값을 임의로 설정해 두는 것이다. 깊이 우선, 넓이 우선 방식에 따라 종속 스터브들이 실제 모듈로 교체. 모듈이 통합될 때마다 검사 실시. 새로운 오류가 생기지 않음을 보증하기 위해 회귀 검사 실시. 상향식 통합 검사(Bottom Up Integration Test) 하위 모듈에서 상위 모듈 방향으로 통합하며 검사 가장 하위 단계의 모듈부터 수행되므로 스터브가 필요 없음. 대신 하나의 주요 제어모듈과 관련된 종속 모듈의 그룹인 클러스터가 필요 절차 하위 모듈들을 클러스터(Cluster)로 결합 검사 사례 입출력 조정을 위해 드라이버(Driver) 작성. (제어 모듈이 없으므로) 클러스터 검사. 드라이버 제거 후, 클러스터는 프로그램 구조의 상위로 이동하여 결합. 출처 https://m.blog.naver.com/PostView.nhn?blogId=agopwns&logNo=220998971498&proxyReferer=https%3A%2F%2Fwww.google.com%2F

[소프트웨어공학] HIPO 모델

이미지
[소프트웨어공학] HIPO 모델 HIPO는 Hierarchical Input Process Output의 약자로, Input-Process-Output으로 이루어진모듈을 계층적으로 나타낸 도표이다. 시스템의 분석 및 설계나 문서화에 사용되는 기법으로 계층을 구성하는 각 모듈별 실행 과정인 입력, 처리, 출력 기능을 나타낸다. 수평 + 수직 시스템의 기능을 여러 개의 고유 모듈들로 분할하여 이들 간의 인터페이스를 계층구조로 표현한 도형 또는 도면 분석 및 설계 도구로 사용된다. 기본 시스템 모델은 입력, 처리, 출력으로 구성된다. 하향식(Top-Down) 개발에 적당하다 문서가 보기 좋게 체계화된다. 기능과 자료의 관계를 동시에 표현할 수 있다. 수정 및 유지 보수시에 좋다. 소규모 프로젝트에 적당한다. HIPO는 3가지 종류가 있다. 3가지를 따로 쓰는 것이 아니라 3가지로 이루어진 것이다. 가시적 도표(Visual Table of Content) 가시적 도표. 도식 목차라도고 불린다. 도식 목차 시스템의 전체적인 기능과 흐름을 보여주는 Tree형태 구조도 가시적 도표에는 입력, 처리, 출력이 나오지 않는다. 총체적 도표(Overview Diagram) 총체적 도표. 위 가시적 도표의 2.0 Update stock을 총체적 도표로 그린 것이다. 개요 도표 프로그램을 구성하는 기능을 기술한 것으로 입력, 처리, 출력에 대한 전반적인 정보를 제공하는 도표  세부적 도표(Detail Diagram) 세부적 도표. 총체적 도표와 같은 프로세스를 그린 것이지만 더 복잡하고 상세하다 상세 도표 총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술하는 도표 총체적 도표와 같은 모양이지만 내용만 좀 더 복잡하게 들어간 형태이다. 꼭 이 3가지가 모여야 HIPO Model이 되는것은 아니다. 흔히 HIPO Chart라고 하는 건 가시적 도

[소프트웨어공학] 소프트웨어 개발비용 산정 기법

[소프트웨어공학] 소프트웨어 개발비용 산정 기법 하향식 비용 산정 기법(top-down) 과거 유사 경험을 바탕으로 회의를 통해 산정하는 비과학적인 기법 전문가 감정 기법 조직내 경험이 있는 2명 이상의 전문가에게 비용산정 의뢰 신속하게 할 수 있지만, 편견이 있을 수 있다. 델파이 기법 한명의 조정자(중재자)와 여러명의 전문가의 의전을 종합하여 비용 산정 전문가 감정 기법의 단점을 보완한 것 상향식 비용 산정 기법(down-top) 프로젝트의 세부적인 작업 단위별로 비용을 산정한 후 전체 비용 산정 LOC(원시 코드 라인 수)기법  각 기능의 원시 코드의 라인수의 비관치(가장 많은 라인 수), 낙관치(가장 적은 라인 수), 기대치(평균 라인수)를 측정하여 예측지를 구해 비용을 산정하는 기법 예측치 = (낙관치 + 4*기대치 + 비관치)/6 노력(인월) = 개발기간 * 투입인원 = LOC / 1인당 월 평균 생상 코드 라인 수 개발 비용 = 노력 * 단위비용(1인당 월평균 인권비) 생산성 = LOC / 노력 개발 단계별 인원수(Effort per Task) 기법 생명 주기의 각 단계별로 노력(인월)을 산정 LOC보다 더 정확한 기법 LCO는 라인수만 있고, EPT는 가중치(일의 어려움)까지 측정 수학적 산정 기법(경험적 추정 모형, 실험적 추정 모형) 수학적 산정 기법 또한 상향식 비용 산정 기법이다. COCOMO(Constructive COst MOdel) 개발할 소프트웨어의 규모(LOC)를 예측한 후 소프트웨어의 종류에 따라 각 비용 산정 공식에 대입하여 비용 선정 소프트웨어 개발 유형 조직형(Organic Mode) 중,소 규모의 5만 라인 이하의 소프트웨어 사무처리용, 업무용, 과학용 응용 소프트웨어 개발에 적합 반 분리형(Semi - Detached Mode) 조직형과 내장형의 중간형으로 30만 라인 이하의 소프트웨어 컴파일

[소프트웨어공학] 블랙 박스 테스트, 화이트 박스 테스트

[소프트웨어공학] 블랙 박스 테스트, 화이트 박스 테스트 블랙 박스 테스트(Back box test) 소프트웨어 검사 방법 중 하나로 어떤 소프트웨어를 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 방법 주로 올바른 입력과 올바르지 않은 입력을 일일이 다 동원하여 올바른 출력을 판별하는 방식으로 검사가 이루어지기 때문에 검사의 진행에 있어 대상이 되는 소프트웨어의 코드나 내부 구조 및 개발 노하우에 대한 정보는 기본적으로 필요로 하지 않습니다. 필요한 것은 특징, 요구 사항, 검사를 위해 공개된 설계도 등 대외적으로 공개된 사항들이며 '이 소프트웨어는 무슨 역할을 수행해야 되는가'와 같이 대상이 되는 소프트웨어의 특징이나 요구 사항 등에 초점을 맞춰 검사가 이루어진다. 검사 자체는 기능에 관한 것일 수 도 있고 기능외의 것에 관한 것 일수도있다. 블랙 박스 테스트는 유닛 검사, 인테그레이션 검사, 기능 검사, 시스템 검사, 적합성 검사 이렇게 소프트웨어 검사의 모든 레벨에 적용 가능합니다. 블랙박스 테스트의 기법 동등분할 기법 프로그램의 입력 도메인을 테스트 케이스가 산출 될 수 있는 데이터의 클래스로 분류하는 방법, 다양한 입력조건들을 갖춘 시험사례 유형들을 분할 : 상식적 경험에 의존(heuristic) 각 시험사례 유형마다 최소의 시험사례 작성 ex) 입력데이터가 값의 범위를 나타낼 때 : X값이 0~100사이여야 한다면 시험 사례를 (X<0, (x=0), X(x>50))으로 분할하여 유형을 적용 경계값분석기법 입력조건의 중간값에서 보다 경계값에서 에러가 발생될 확률이 높다는 점을 이용하여 이를 실행하는 테스트 케이스를 만드는 방법 ex) x값이 0~50사이여야 한다면 시험사례를 (x=0),(x=50),(x=-0.01),(x=50.1)로 정의 오류예측기법 각 시험기법들이 놓치기 쉬운 오류들을 감각 및 경험으로 찾아보는 것 ex) 입