전체 글 290

[컴퓨터네트워크] 12. 응용계층 소개(1)

응용 계층 소개이용자, 혹은 프로그램(프로세스)에게 서비스 제공프로그램을 위한 다양한 네트워크 서비스 제공원격컴퓨터접근, 파일전송, 이메일전송, ...서비스 제공표준(standard) 응용계층 프로토콜(보통 RFC 표준 문서와 절차를 통해서 그 내용을 구현함)비표준(nonstandard, proprietary) 응용계층 프로토콜(개인적인 그룹, 집단에서 자체적으로 구현한 것)응용계층 패러다임Client-server paradigmTraditional paradigmPeer-to-peer paradigmNew paradigmMixed Paradigm 클라이언트-서버 프로그래밍클라이언트는 통신을 시작하고, 요청을 보내는 프로그램서버는 클라이언트의 요청을 서비스하는 응용 프로그램서비스 유형TCPex) 웹, 이..

[컴퓨터네트워크] 11. 전송계층 프로토콜(2)

전송계층 프로토콜(2)TCPTCP에서의 윈도우TCP는 각 방향의 데이터 전송에 2개의 윈도우 사용send windowreceive window하나의 연결에 전체 4개의 윈도우 존재  수신 window수신측이 송신측에서 data를 받으면 close하고,프로세스가 수신측에 있는 data를 pull하면 open이 발생한다흐름 제어 (Flow control)흐름제어는 소비자가 데이터를 이용할 수 있는 속도로 생산자가 데이터를 보내도록 맞추는 것TCP는 흐름제어와 오류제어를 분리TCP 흐름제어 설명에서 오류는 없는 것으로 가정 Example 10.18다음 페이지 예제 10.18은, 수신 윈도우(rwnd)를 잘못 축소시킨 예.파트 a에서 rwnd=12이고, ackNo=206 파트 b에서 송신측은 206-214 패킷..

[컴퓨터네트워크] 10. 전송계층 프로토콜(1)

전송계층 프로토콜(1)전송계층 프로토콜 소개전송계층 프로토콜 서비스UDP비신뢰적 비연결형간단. 효율적 : 에러처리는 응용계층에서 수행TCP신뢰적인 연결지향SCTPUDP와 TCP의 특징을 결합포트번호(Port Numbers)TP 계층 프로토콜은 프로세스간 통신 지원포트 번호는 전송계층에서 종단간 종단간 주소를 지원프로세스를 구분할 때 구분자를 제공해준다다중화/역다중화 지원 참고)0~65535 까지 할당이 가능하다0~1023은 잘 알려진 포트로, 사용하지 않는 것이 좋음UDPUser Datagram ProtocolUDP는 비연결, 비신뢰적 전송 프로토콜최소한의 오버헤드를 가지는 단순 프로토콜User Datagramcf) TCP : segment, UDP : datagramUDP 패킷 (데이터그램)은 8바이트..

[컴퓨터네트워크] 09. 전송계층(2)

전송 계층Go-Back-N 프로토콜(GBN)전송 효율을 높이기 위해서는 Ack를 받기전에 여러 패킷을 보낼 필요가 있다Ack를 받기 전에 미처리 (outstanding) 패킷의 수를 1 이상으로 유지하여 채널을 바쁘게(busy) 함cf) Stop and Wait 프로토콜 : 패킷 1개 주고, 1개 받음       !! Go-Back-N의 경우 Send window 크기가 2^m보다 작아야 한다Example 8.7그림 8.29(다음페이지)는 Go-Back-N의 예를 보여준다.이 예는 순방향 채널이 신뢰할 만하고, 역방향은 그렇지 않은(신뢰적이지 않은) 경우임.데이터 패킷은 유실되지 않은데, 몇몇 ACK는 지연되거나 유실되는 환경이다.이 예는 또한 한꺼번에 확인응답하는 방법은 응답이 늦거나 유실될 경우에 유..

[컴퓨터네트워크] 08. 전송계층(1)

전송계층전송계층 소개Process-to-process 통신 지원Local hostremote host논리 연결(logical connection)을 통해 통신 지원전송계층 서비스에플리케이션 계층에게 서비스 제공네트워크 계층의 서비스 이용    Ex 8.1유닉스에서 well-known 포트는 /etc/services(유닉스, 리눅스) 파일에 저장되어 있다. Grep 명령을 통해 찾는 정보가 있는 라인을 추출할 수 있다.$grep tftp/etc/servicestftp 69/tcptftp 69/udptcp와 udp에서 69번을 사용한다SNMP는 2개(161, 162)의 포트 번호를 다른 용도로 사용한다$grep snmp/etc/servicessnmp161/tcp#Simple Net Mgmt Protosnmp..

[소프트웨어 공학] 12. Safety Engineering

Safety안전(Safety)은 시스템이 정상적이든 비정상적이든 작동하면서 인간에게 상해나 사망을 초래하지 않고 시스템 환경에 손상을 주지 않는(the system's ability to operate without danger of causing human injury or death and witout damage to the system's environment) 시스템의 능력을 반영하는 속성입니다.소프트웨어 안전(software safety)을 고려하는 것이 중요합니다. 왜냐하면, 대부분의 장치들이 소프트웨어 기반 제어 시스템을 통합하고 있기 때문입니다.Software in safety-critical systems시스템은 소프트웨어로 제어되어, 소프트웨어의 결정과 그에 따른 행동이 안전에 중요한..

[소프트웨어 공학] 11. Reliability Engineering

Software reliability일반적으로, 소프트웨어 고객은 모든 소프트웨어가 신뢰할 수 있기를 기대합니다.그러나, 비중요 응용 프로그램의 경우, 일부 시스템 실패를 수용할 수도 있습니다.일부 응용 프로그램(중요 시스템)은 매우 높은 신뢰성 요구 사항을 가지며, 이를 달성하기 위해 특별한 소프트웨어 공학 기술이 사용될 수 있습니다.의료 시스템통신 및 전력 시스템항공우주 시스템Faults, errors and failures용어설명Human mistake시스템에 결함을 도입하게 되는 인간 행동System fault시스템 오류로 이어질 수 있는 소프트웨어 시스템의 특성System error시스템 사용자가 예상하지 못한 시스템 상태System failure시스템이 기대한 서비스를 제공하지 못할 때 발생하..

[소프트웨어 공학] 10. Dependable Systems

System Dependability많은 컴퓨터 기반 시스템에서 가장 중요한 시스템 속성은 시스템의 신뢰성(dependability)이다.시스템의 신뢰성은 사용자가 해당 시스템에 대한 신뢰의 정도를 반영한다.(The dependability of a system relfects the user's degree of trust in that system)이는 사용자가 시스템이 사용자가 기대하는 대로 작동(it will operate as users expect)하고, 정상 사용 중에 '실패'하지 않을 것(it will not 'fail' in normal use)이라는 확신의 정도를 반영한다.사용자가 이 시스템을 얼마나 믿을 수 있는가?실패 예시) 과제 마감 2분 전 트래픽이 몰려서 제출하지 못함신뢰성은 ..