1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
.\" $NetBSD: ekermit.1,v 1.3 2014/08/08 21:57:31 apb Exp $
.Dd August 8, 2014
.Dt EKERMIT 1
.Os
.Sh NAME
.Nm ekermit
.Nd Send or receive files using Kermit file transfer protocol
.Sh SYNOPSIS
.Nm
.Op Fl BdhkLRrT
.Op Fl b Ar 1235
.Op Fl E Ar number
.Op Fl p Ar neoms
.Op Fl s Ar file
.Sh DESCRIPTION
.Nm
is a simple command line interface to
EK (Embedded Kermit, E-Kermit),
which is an implementation of the Kermit file
transfer protocol written in ANSI C and designed for embedding in devices or
firmware, use in realtime applications, or for construction of DLLs and
libraries.
.Pp
.\" "What E-Kermit Does"
.Nm
performs just two functions: sending files and receiving files.
.\" "What E-Kermit Does NOT Do"
.Pp
.Nm
does not include client/server functions; a command or script
programming language; character-set conversion; transport encryption;
or any form of communications or file input/output.
It does not dial modems, it does not make connections,
it does not have a built-in TCP/IP stack or interface to an external one.
If you need these features, then you should use a full Kermit program,
such as C-Kermit or Kermit 95.
.Pp
The following options are available:
.Bl -tag -width "XsXfileX..." -offset indent
.It Fl B
Force binary mode.
.It Fl b Ar 1235
Block check type: 1, 2, 3, or 5.
.It Fl d
Create
.Pa debug.log .
.It Fl E Ar number
Simulated error rate (0-100).
.It Fl h
Display a help message.
.It Fl k
Keep incompletely received files.
.It Fl L
Local mode (vs remote).
.It Fl p Ar neoms
Parity: none, even, odd, mark, space.
.It Fl R
Remote mode (vs local).
.It Fl r
Receive files.
.It Fl s Ar file ...
Send files.
.It Fl T
Force text mode.
.El
.
.Sh IMPLEMENTATION NOTES
.Nm
includes the following Kermit Protocol features:
.Bl -bullet -offset indent -compact
.It
Long packets.
.It
Sliding windows with Go-Back-to-N error recovery.
.It
Repeat-count compression.
.It
Control-character prefixing and unprefixing.
.It
8th-bit prefixing (for transferring 8-bit data on 7-bit links) (= parity).
.It
Attribute packets (type, size, and date).
.It
Sending and receiving single or multiple files.
.It
Automatic per-file text/binary mode switching.
.It
All three block check types (6- and 12-bit checksum, 16-bit CRC).
.It
Status reports (protocol state, file name, size, timestamp, bytes so far).
.It
Transfer cancellation by either party.
.El
.Pp
The following Kermit Protocol features are not implemented:
.Bl -bullet -offset indent -compact
.It
Sliding windows with selective retransmission.
.It
Character sets.
.It
Locking shifts.
.It
Client/server.
.El
.Pp
Because
.Nm
is designed primarily for embedding, it does not use
streaming or (except in EKSW) true sliding windows (although much of the
sliding windows code is there).
.Pp
The lack of true sliding windows in
.Nm
is compensated by having
.Nm
pretend to support them without really doing so.
This allows its sending partner to "stream" packets rather than waiting
for ACKs after each one, as long as there isn't an error.
If there is an error, the recovery strategy is "go back to n" (or
perhaps in some cases "error out") rather than "selective repeat".
EKSW, a separate program that has not been integrated with
.Nm
(but
should be), supports true sliding windows with selective repeat; that
is, only those packets are retransmitted that actually need to be.
.Pp
In any event, since
.Nm
is intended primarily for embedding, it is
anticipated that round-trip delays won't be a big factor; connections
will generally be local, short, relatively fast, and if the connection
is effectively flow controlled, error-free.
When effective flow control is lacking, the speed and/or packet length
and/or window size can be set to a combination of values that maximizes
throughput and minimizes data loss.
.Sh SEE ALSO
.Lk http://www.kermitproject.org/ek.html
.Sh HISTORY
Version 1.1 of
.Nm
was released in 2002.
A BSD-licenced version 1.6 was released in 2011.
|