검색어 입력폼

컴퓨터네트워크 Peer-to-Peer Process 5계층 모델 구현..

저작시기 2007.05 |등록일 2007.05.31 파일확장자C언어 (cpp) | 가격 3,000원

소개글

내용: 2장에서 배운 Peer-to-Peer Process 구현해 보는 것으로 다음 요구 사항을 잘 읽고 C++ 를 이용하여 프로그래밍 하세요.

입 력(화면으로부터 키): 송/수신자 이름(각 10자), 송/수신자 주소(각 50자), 송/수신자 우편번호(각 32자), 메시지(512자)
주의: ( ) 안의 숫자는 최대 허용치임. 구조체 생성시 각 field 당 크기로 사용.
화면에서 입력을 받을 때는 ‘엔터키‘로 다음 항목으로 이동 함.

enc_function5(응용계층): 화면으로 부터 입력을 처리하고 마지막에 메시지만 출력한다.
enc_function4(전송계층): 처음에 입력 받은 각각의 송/수신자 이름과 이전 계층의 메시지(응용계층)를 하나의 구조체(struct 등: 가칭 tcphdr)에 assign하고 구조체 전체를 인쇄한다.
enc_function3(네트워크계층): 또 다른 구조체에(가칭 iphdr) 위의 계층(전송계층)의 내용을 하나의 데이터로 취급하고 추가로 송수신자의 우편번호와 주소를 assign 한 후 전체 계층의 메시지를 인쇄한다.
enc_function2(데이타링크계층): 또 다른 구조체(가칭 framehdr)에 네트워크 계층 내용을 데이터로 취급하고 랜덤으로 생성된 정수형 숫자하나를(물리 주소로 간주: phy_addr 로 명명) 넣고, 모든 데이터의 ASCII 값을 더해 구조체 내에 field(가칭 checksum으로 명명)에 추가 한다. 그리고 최종적으로 전체를 인쇄한다.
enc_function1(물리계층): 위의 계층에 있는 모든 내용을 이진수로 출력한다.
dec_function1(물리계층): enc_function1의 내용을 수신한 것으로 간주하고 다시 인쇄 한다.
dec_function2(데이타링크계층): enc_function2에서 사용한 구조체(framehdr)의 데이터 부분을 각 문자별로 다시 ASCII값으로 전환해 누계를 구한다. 그리고 checksum 과 비교한다. 이상 없을 시 전체를 인쇄한다. 데이터링크 계층에서 사용한 구조체에서 phy_addr과 checksum 을 제외한 부분을 enc_function3에서 사용했던 구조체(ipdhr)에 넣는다.
dec_function3(네트워크계층): 3계층 구조체를 인쇄한다. enc_function3에서 사용한 구조체에서 송/수신자의 우편번호, 송/수신자 주소를 제외한 부분을 enc_function4에서 사용했던 구조체(tcphdr)에 넣는다.
dec_function4(전송계층): 4계층 구조체를 인쇄한다. 순수 메시지만을 enc_function5에서 사용한 변수에 할당한다.
dec_function5(응용계층): 받은 메시지 전체를 인쇄한다.


주의: 3개의 구조체(tcphdr,iphdr,framehdr) 만들어 작업 바람. 혹 모든 구조체를 포함하는 1개의 큰 구조로 만들어 수행시 감점 30점

컴파일 실행환경

Microsoft visual c++,

본문내용

#소스일부
int main()
{
struct tcphdr p2;
struct iphdr p3;
struct framehdr p4;
struct iphdr p5;
struct tcphdr p6; //받은 구조체 배열을 임시로 저장할 구조체들
char sender[10],receiver[10]; //송수신자이름
char s_add[50]; char r_add[50]; //송수신자주소
char s_post[32]; char r_post[32]; //송수신자우편번호
char message[512]; //메시지


enc_function5(sender,receiver,s_add,r_add,s_post,r_post,message);
p2=enc_function4(sender,receiver,message);
p3=enc_function3(s_add,r_add,s_post,r_post,p2);
p4=enc_function2(p3);
enc_fuction1(p4);
dec_fuction1(p4);
p5=dec_fuction2(p4);
p6=dec_fuction3(p5);
*message=dec_fuction2(message,p6);
dec_fuction1(message);
return 0;
}
다운로드 맨위로